C语言编程:s=1+12+123+1234+12345求高手!

困惑

自定义一个递归求和函数在主函数中用(12345)调用,是求解此题十分恰当的选择。代码如下:

#include "stdio.h"
int f(int n){//自定义递归求和函数
if(n==1)
return 1;
return n+f(n/10);//用n/10调用满足每项逐次少低位数的规律
}
int main(int argc,char *argv[]){
printf("%d\n",f(12345));//用最后一项数字调用求和
return 0;
}

执行结果如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-07
只给算法: int s = 1; //s等于1,为了 下面的算式方便 for(int i=1; i<=5; ) { s += i*10 + ( ++i ) // i*10 + ( ++i ) 求出下一个数等于多少 // s记录每次循环的的和等于多少 } spirtf ("s=%d',s) // 完成求出S的答案 明白不??简单。。。本回答被网友采纳
第2个回答  2013-11-07
//楼上那位朋友的算法错啦...... #include <stdio.h>
void main()
{
int a=1;
int s=0;
for(int i=1;i<6;i++)
{
s+=a;
a=a*10+(i+1);
}
printf("1+12+123+1234+12345=%d\n",s);
}

C语言编程:s=1+12+123+1234+12345求高手!
include "stdio.h"int f(int n){\/\/自定义递归求和函数if(n==1)return 1;return n+f(n\/10);\/\/用n\/10调用满足每项逐次少低位数的规律}int main(int argc,char *argv[]){printf("%d\\n",f(12345));\/\/用最后一项数字调用求和return 0;}执行结果如下:...

C语言编程:s=1+12+123+1234+12345求高手!急~~
s += i*10 + ( ++i )其实是s=s+【 i*10 + ( ++i )】,而(++i)则是i+1 于是代码变成了 for(int i=1;i<=5){ s= i*10 + i+1+s;i++;} 显然,一对比,这个结果是错了的

如何用c语言编写s=1+12+123+1234+12345程序
} printf("The sum of 1+12+123+1234+12345 is%d.\\n",sum);return 0;}

C语言编程求s=1+12+123+12345+123456+1234567+12345678的值_百度...
int i,s=1,t=1;for(i=2;i<=8;i++){ t = t*10 +i;\/\/t是这是增量 s += t;\/\/s放和 } printf("s=%d\\n",s);}

如何用C语言编写1+12+123+1234+12345?
s,分别用于存储数列加法迭代中的次新项、最新项和和值,它们的初值都是零。然后进入一个for循环,其中i为计数变量,它的取值在1和5之间,显然,对这个数列中的每一项,有通项公式:ar2=10*ar1+i 。。。这里空间太小,不再详细叙述了,下面做了它的升级版,代码见配图。代码 运行样例 ...

用c++编写1+12+123+1234+12345的程序
\/\/ Note:循环、迭代求 1 + 12 + 123 + 1234 +...+ 123...n=?\/\/ y=0+fn(1)+fn(2)+fn(3)+...+fn(n)include <iostream> using namespace std;int fn(int n) \/\/利用迭代法求fn(n){ if (n==1) return 1;else return (fn(n-1)*10+n);} int main(){ int n,i,y...

用c语言实现:s=1+12+123+……+123456789
如果只是简单的计算他们的和与差,这样就可以了:int s=1-12+123-1234+12345;如果是要按一定规律的计算,比如计算10以下的 int s = 0;int nsymbol= -1;int ntmp = 0;for(int i = 1;i<=10;i++){ ntmp = 10 ntmp;ntmp += i;nsymbol = -1;s += nsymbol ntmp;} 朋友,请...

C语言编一个程序求 1+12+123+1234+。。。+N(0〈N〈10)
void main(){ int a[9]={1,12,123,1234,12345,123456,1234567,12345678,123456789};int n,ans=0;printf("Input a number N(0<N<10):");scanf("%d",&n);while(n<=0||n>=10){ printf("A wrong number ! Input N again :");scanf("%d",&n);} for(int i=0;i<n;i=i+...

1+12+123+1234+12345+123456+1234567+12345678+123456789用C语言怎 ...
include <stdio.h> main(){ long a[10]={1,12,123,1234,12345,123456,1234567,12345678,123456789};long int b;b=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9];printf("%ld",b);getch();}

要求以下程序的功能是计算:s=1+12+123+1234+12345 请填空 C++
填的是(10的i减一次方)

相似回答