|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
//给出一个正整数,求小于等于该正整数的所有自然数的平方数的阶乘之和
#include<stdio.h>
int main()
{
int square(int m,int n);
int factorail(int x);
int i,j,m,n,sum;
scanf("%d,%d\n",&m,&n);
sum = 0;
for (i = 2;i <= m;i++)
{
sum = sum + factorail( int square(int m,int n) );
}
printf("%d 的 %d 次方的阶乘是:%d\n",m,n,sum);
}
int square(int m,int n)
{
int j,x,p;
x = m;
p = x;
for (j = 1;j < n;j++)
{
p = p * x;
}
return p;
}
int factorail(int x)
{
int p,y;
y = p;
while(x != 2)
{
y = y * x;
x--;
}
return y;
}
编译时出现两个错误,都是嵌套调用那一行:1、error C2143: syntax error : missing ')' before 'type' ;2、error C2198: 'factorail' : too few actual parameters
请教如何修改程序,谢谢!
看看这个是不是你要的结果?
计算指数可以用math.h头文件的pow(底数,次数)
- //给出一个正整数,求小于等于该正整数的所有自然数的平方数的阶乘之和
- #define intll long long
- #include <stdio.h>
- //阶乘函数
- intll fact(intll num)
- {
- intll result = 1;
- if (num < 0)
- {
- result = 0;
- }
- else if (num > 0)
- {
- for (intll i = 1; i <= num; i++)
- {
- result *= i;
- }
- }
- return result;
- }
- //计算小于等于num所有自然数的平方的阶乘累加值
- intll sum_fact(intll num)
- {
- intll result = 0;
- if (num >= 0)
- {
- for (size_t i = 0; i <= num; i++)
- {
- result += fact(i*i);
- }
- }
- return result;
- }
- int main(int argc, char const *argv[])
- {
- printf("%lld", sum_fact(2));
- return 0;
- }
复制代码
|
|