函数功能返回1+12+123+1234+12345等,共n(≤9)项相加的值
#include
int main()
{
int n;
do
{ printf("请输入n(1~9):");
scanf("%d",&n);
} while(n<1||n>9);
printf("sum=%d\n",fun(n));
return 0;
}
int fun(int n)
{
int item = 0,sum = 0;
for(int i=1;i<=n;i++)
{
item = item * 10 + i;
sum += item;
}
return sum;
}
意思是收入一个n的数字,可以打印输出1+12+123..+123..n这样的和吗?不知道是不是这样理解的。
针对次进行函数修改如下所示,以下程序已经编译测试通过的,请验证。
#include<stdio.h>
long long fun(int n);
int main(void)
{
int n;
printf("请输入n(1~9):");
scanf("%d",&n);
if(n<1||n>9)
{
printf("input n is error!\n");
return 1;
}
printf("sum=%lld\n",fun(n));
return 0;
}
long long fun(int n)
{
long long sum=0;
long long value;
int i,j;
for(i=1;i<=n;i++)
{
value=0;
for(j=0;j<i;j++)
{
value=value*10;
value+=j+1;
}
printf("value=%lld\n",value);
sum+=(value);
printf("sum11=%lld\n",sum);
}
return sum;
}
#include <stdio.h>
int fun(int n) {
if (n == 1) {
return 1;
} else {
int sum = 0;
for (int i = 1; i <= n; i++) {
int num = 0;
for (int j = 1; j <= i; j++) {
num = num * 10 + j;
}
sum += num;
}
return sum + fun(n - 1);
}
}
int main() {
int n;
do {
printf("请输入n(1~9):");
scanf("%d", &n);
} while (n < 1 || n > 9);
printf("sum=%d\n", fun(n));
return 0;
}