给出一个正整数N(1≤N≤100),即可得到一个由N 个正整数组成的从1开始的如下数列:1,2,3,4,……N-2,N-1,N,且可求出从1开始的这N个数的全部各个数位上的数字之和.
输入(in):一行,正整数N(1≤N≤100)
输出(out):第一行,一个由N 个正整数组成的从1开始的如下数列:1,2,3,4,……N-2,N-1,N,
第二行,数字之和
样例:
输入:12
输出:1 2 3 4 5 6 7 8 9 10 11 12
S=1+2+3+4+5+6+7+8+9+1+0+1+1+1+2=51
用for循环sum+=i;
#include <stdio.h>
int main()
{
int N,i,sum=1;
scanf("%d",&N);
for(i=1;i<=N;i++)
printf("%d ",i);
printf("\nS=1");
for(i=2;i<=N;i++)
{
if(i==100)
{
sum+=1;
printf("+1+0+0");
}
else if(i<10)
{
sum+=i;
printf("+%d",i);
}
else
{
sum += i%10;
sum += i/10;
printf("+%d+%d",i/10,i%10);
}
}
printf("=%d",sum);
return 0;
}
第一个输出就懒得废话了,说说第二个
int S = 0;
int a, b;
while (N > 0)
{
a = N / 10;
b = N % 10;
S += a + b;
N--;
}
return S;
循环就好了,把N的个位数和十位数累加起来,然后N减一进入下一次循环,我这是C#,你C要运行可能得改改