C 言语罕见编程算法实例一、对于数字上的一些编程算法1.输入 9*9 口诀乘法表。剖析:分行与列思索,共 9 行 9 列,i 操纵行,j 操纵列。#include"stdio.h"main(){inti,j,result;printf("\n");for(i=1;i<10;i++){for(j=1;j<=i;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d 表现左对齐,占 3 位*/}printf("\n");/*每一行后换行*/}}2.求 s=a+aa+aaa+aaaa+aa...a 的值,此中 a 是一个数字。比方 2+22+222+2222+22222(如今共有5 个数相加),几多个数相加有键盘操纵。剖析:要害是盘算出每一项的值。main(){inta,n,count=1;longintsn=0,tn=0;printf("pleaseinputaandn\n");scanf("%d,%d",&a,&n);printf("a=%d,n=%d\n",a,n);while(count<=n){tn=tn+a;sn=sn+tn;a=a*10;++count;}printf("a+aa+...=%ld\n",sn);}3.公式∏/4=1-1/3+1/5-1/7+...+1/n,求∏的近似值,直到最初一项 1/n 的相对值小于 0.000001。#include#includemain(){intf=1;doublepi=0,t=1,v=1;while(fabs(t)>1e-6){pi=pi+t;v+=2;f=-f;t=f/v;}pi*=4;printf("∏=%f\n",pi);}4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出那个数列的前 20 项之跟。法那么:分子是前一项分子分母之跟,分母是前一项的分子。main(){intn,t,number=20;floata=2,b=1,s=0;for(n=1;n<=number;n++){s=s+a/b;t=a;a=a+b;b=t;/*序列法那么的实现*/}printf("sumis%9.6f\n",s);}5.推断 11<=x<=10000 中的数那些是回文数,统计回文数个数,回文数每行输入 10 个。剖析:(1)让 x 从新形成新的数 t,假如 x==t 那么是回文数.(2)剖析出 x 的列位,进展首尾比拟,假如都相称那么是回文数。fun1()//算法一{longx,i,t=0,s=10,cnt=0;for(x=11;x<10000;x++){i=x;while(i!=0)//形成新的数{t=t*s+i%10;i=i/10;}if(t==x){printf("%5d",x);cnt++;if(cnt%10==0)printf("\n");}t=0;}printf("\ncnt=%5d",cnt);}fun2()//算法二{longx,i,t=0,j=0,s=10,x1,cnt=0;inta[10];for(x=11;x<10000;x++){x1=x;while(x1!=0)//剖析出列位{a[j]=x1%10;x1=x1/10;j++;}i=0;j--;while(i=j){printf("%5d",x);cnt++;if(cnt%10==0)printf("\n");}j=0;}printf("\ncnt=%5d",cnt);}main(){fun1();}6.求 1+2!+3!+...+20!的跟。main(){floatn,s=0,t=1;for(n=1;n<=20;n++){t*=n;//实现阶乘s+=t;//将阶乘累加}printf("1+2!+3!...+20!=%e\n",s);//...