提示: 作者被禁止或删除 内容自动屏蔽
在网吧通宵泡论坛发贴子,挣齐所有大学学费,详情请点击: http://www.vikkk.tk/
#include <stdio.h> int fc (int ,int ); int main(void) { int a,b,y; printf("输入终止值:"); scanf("%d", &a); printf("输入n次幂:"); scanf("%d", &b); y = fc(a,b); printf("最终结果: %d\n",y); return 0; } int fc (int na,int nb) { int i,j; int temp; int save = 0; for (i=1; i<=na; ++i) { temp = i; //循环到 n ,用于保存临时值,而不是修改i的值 for (j=1; j<nb; ++j) //n次方 { temp = temp * i; //这里可不能是temp * temp 哦,因为这样假设计算的是2的立方的话就会变成 2 * 2 = 4, 4 * 4 = 16,而不是 2 * 2 = 4, 4 * 2 = 8 } save = save + temp; //保存 } return save; }
int fc(int n,int k) { int j,i,s; for(j=1;j<=n;j++) { s=0; //由于你每次都执行了归零操作,s将无法保存一直下来的数 for(i=1;i<=k;i++) //假设输入的是2 这样会循环两次的,因为 2<=2才会停止,所以这样算的是两次j*j 所以结果就是j*j*j 。(不知道怎么表达了,呵呵 看看就好) { j*=j;} //这样会直接对for循环里面的j进行运算,第一次是 1 * 1=1 , 1 * 1 = 1所以没影响, 第二次就是 2 * 2 =4, 4 * 4 = 16并且由于16<=n 成立所以跳出循环 s+=j; } return s; //所以最终返回的就是4 * 4 的值 } void main() { int y,a,b; scanf("%d%d",&a,&b); y=fc(a,b); printf("%d",y); }