7、(C)计算s=1 +2的平方+3的立方+……+n的n次方,n由终端输入
哇,knocker成财迷拉。
这个题目很简单,编一个实现N^N的函数再循环就可以了。
注意很可能会溢出,要更好的就要高精度算法了
#include<stdio.h> #include<math.h> void main() { int n,s=0; scanf(&n); for(int i=1;i<=n;i++) s+=pow(i,i); printf("%d\n",s); }
#include<stdio.h> #include<math.h> void main() { int n,s=0; scanf(&n);//错误之一,scanf()不是这样用的 for(int i=1;i<=n;i++) s+=pow(i,i);//错误之二,数据溢出 printf("%d\n",s); }
s+=pow(i,i);//错误之二,数据溢出
什么是数据溢出,是不是整型不够存储s的值??
不是很难的
对于大数的乘法可以用重复平方算法这个unix的源码里面有。
或者通过数组array来解决。把两个n、m位数的因数分别转化成n、m个一位数的连续形式,分别储存在数组array中,然后按照竖式乘法的方式编程求解。
[此贴子已经被作者于2004-08-11 10:13:48编辑过]