仅函数部分:(参考)
ss(int n)
{ if (n= =1) return 1;
else return(n*n+ss(n-1);) }
可以告诉我怎么做吗?急求解法
C语言用递归方法实现1的二次方加2的2次方一直加到20的2次方
答案:2 悬赏:60
解决时间 2021-03-28 23:05
- 提问者网友:流星是天使的眼泪
- 2021-03-28 04:16
最佳答案
- 二级知识专家网友:你好陌生人
- 2021-03-07 00:11
#include <stdio.h>
int a[1000];
int c, k;
void scale(int n)
{
int i;
if(n == 0) {
printf("no.%-3d:", ++k);
for(i = 0; i < c; ++i)
printf("%d ", a[i]);
putchar('\n');
} else
for(i = 1; i <= 3 && i <= n; ++i) {
a[c++] = i;
scale(n-i);
--c;
}
}
int count(int n)
{
int a[3] = { 1,2,4 }, i, t;
if(n <= 3)
return a[n-1];
for(i = 3; i < n; ++i) {
t = a[0] + a[1] + a[2];
a[0] = a[1];
a[1] = a[2];
a[2] = t;
}
return a[2];
}
int main()
{
int n;
scanf("%d", &n);
scale(n);
printf("total:%d\n", count(n));
}
int a[1000];
int c, k;
void scale(int n)
{
int i;
if(n == 0) {
printf("no.%-3d:", ++k);
for(i = 0; i < c; ++i)
printf("%d ", a[i]);
putchar('\n');
} else
for(i = 1; i <= 3 && i <= n; ++i) {
a[c++] = i;
scale(n-i);
--c;
}
}
int count(int n)
{
int a[3] = { 1,2,4 }, i, t;
if(n <= 3)
return a[n-1];
for(i = 3; i < n; ++i) {
t = a[0] + a[1] + a[2];
a[0] = a[1];
a[1] = a[2];
a[2] = t;
}
return a[2];
}
int main()
{
int n;
scanf("%d", &n);
scale(n);
printf("total:%d\n", count(n));
}
全部回答
- 1楼网友:啵啵桃汀
- 2019-05-09 07:43
#include "stdio.h"
#include "conio.h"
#include "math.h"
int ss(int n)
{
if (n==1)
return 1;
else
return(n*n+ss(n-1));
}
main()
{
int result;
result = ss(20);
printf("%d",result);
getch();
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯