作者azure532 (當紅炸子機)
看板C_and_CPP
標題[問題] C語言1^1+2^2+3^3+....+n^n
時間Tue Mar 31 14:09:39 2009
使用迴圈計算1^1+2^2+3^3+...+n^n的值
n由使用者輸入(n為個位數的正整數)
p.s 不得使用公式,也不得使用數學函式庫
#include <stdio.h>
int main(void)
{
int i,j,n, product;
long sum;
printf("input a number: ");
scanf("%d", &n);
sum = 0;
for (i=1; i<=n; i++) {
product = 1;
for (j=1; j<=i; j++) {
product *= i;
}
sum += product;
}
printf("sum is: %d\n",sum);
return 0;
}
請問板上的各位先進&高手們 這個程式碼有沒有更好的改進方法呢?
感激不進
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.20.115.210
1F:推 chrisdar:for (int i=0;i<=n;++i){sum+=i*i;} fun(10)=385?? 03/31 14:23
2F:推 cismjmgoshr:樓上的是 Σn^2 ? 03/31 14:28
3F:推 Ygulu:也可以用遞迴 但好像沒比較好 03/31 14:45
4F:推 chrisdar:sum+=(int)pow(double(i),double(i)); XDD 看錯了 03/31 15:23
5F:→ chrisdar:不過 不能用math 只好 是原來的方法 03/31 15:24
6F:推 gba356:用遞迴的確有比較好呀?二分遞迴 D&C ~ 03/31 15:44
7F:推 gba356:請見我的回文 03/31 16:16
8F:推 samtry:其實這程式應該還需要考慮到溢位問題 03/31 17:49