資源描述:
《c語言常見編程算法實例》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學術(shù)論文-天天文庫。
1、常見編程算法實例一、關(guān)于數(shù)字上的一些編程算法1.輸出9*9口訣乘法表。分析:分行與列考慮,共9行9列,i控制行,j控制列。#include"stdio.h"main(){inti,j,result;printf("");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("");/*每一行后換行*/}}2.求s=a+aa+aaa+aaaa+aa...a的值
2、,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。分析:關(guān)鍵是計算出每一項的值。main(){inta,n,count=1;longintsn=0,tn=0;printf("pleaseinputaandn");scanf("%d,%d",&a,&n);printf("a=%d,n=%d",a,n);while(count<=n){tn=tn+a;sn=sn+tn;a=a*10;++count;}printf("a+aa+...=%ld",sn)
3、;}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",pi);}1.有一分數(shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數(shù)列的前20項之和。規(guī)律:分子是前
4、一項分子分母之和,分母是前一項的分子。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;/*序列規(guī)律的實現(xiàn)*/}printf("sumis%9.6f",s);}2.判斷11<=x<=10000中的數(shù)那些是回文數(shù),統(tǒng)計回文數(shù)個數(shù),回文數(shù)每行輸出10個。分析:(1)讓x重新構(gòu)成新的數(shù)t,如果x==t則是回文數(shù).(2)分解出x的各位,進行首尾比較,如果都相等則是回文數(shù)。fun1()//算法一{lo
5、ngx,i,t=0,s=10,cnt=0;for(x=11;x<10000;x++){i=x;while(i!=0)//構(gòu)成新的數(shù){t=t*s+i%10;i=i/10;}if(t==x){printf("%5d",x);cnt++;if(cnt%10==0)printf("");}t=0;}printf("cnt=%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!
6、=0)//分解出各位{a[j]=x1%10;x1=x1/10;j++;}i=0;j--;while(i=j){printf("%5d",x);cnt++;if(cnt%10==0)printf("");}j=0;}printf("cnt=%5d",cnt);}main(){fun1();}1.求1+2!+3!+...+20!的和。main(){floatn,s=0,t=1;for(n=1;n<=20;n++){t*=
7、n;//實現(xiàn)階乘s+=t;//將階乘累加}printf("1+2!+3!...+20!=%e",s);//%e為科學計數(shù)法輸出}1.輸入一個年份判斷它是否是閏年,滿足下面條件之一就稱為閏年:(1).能被4整除而不能被100整除。(2).能被100整除也能被400整除。#includemain(){longintyear;printf("inputyear:");scanf("%d",&year);if(year%4==0&&year%100!=0
8、
9、year%100==0&&year%400=
10、=0)printf("yes");elseprintf("No");}2.將十進制數(shù)轉(zhuǎn)換成任意進制。分析:將輸入的數(shù)循環(huán)除以基數(shù)取余直到商為0,然后逆序輸出。#includevoidmain()//idec為十進制數(shù),ibase為要轉(zhuǎn)換成數(shù)的基{intidec,i,idr,p=0,ibase;charstrdr[20],t;printf("