实现算法:给定两个整数u和v,它们分别有m和n位数字,且m≤n。用通常的乘法求uv的值需要O(mn)时间。我们可以将u和v均看作是有n位数字的大整数。用分治法在O(nlog3)时间内计算uv的值。当m<<n时,此法效率不高。设计算法在O(nlog2/3)时间计算uv的值开发平台:.net 2005 C++
如下所示:
# -*- coding: utf-8 -*-
# 水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
# 要求:打印输出所有的水仙花数。
def f(n):
list=[]
for i in range(pow(10,n-1),pow(10,n)):
list=map(int,str(i))
sum = 0
for k in range(0,len(list)):
sum=sum+pow(list[k],n)