




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1.加法器和累乘器1#include<stdio.h>23#defineMAXN11045intget_sum(int*arr,intn)6{7intsum=0;//初值為08for(inti=0;i<n;i++)9sum+=*(arr+i);10returnsum;11}1213intget_mul(int*arr,intn)14{15intmul=1;//初值為116for(inti=0;i<n;i++)17mul*=*(arr+i);18returnmul;19}2021intmain()22{23intn,a[MAXN];24scanf("%d",&n);25for(inti=0;i<n;i++)26scanf("%d",&a[i]);2728intres1=get_sum(a,n),res2=get_mul(a,n);2930printf("%d%d\n",res1,res2);31return0;32}2.求最大數與最小數1#include<stdio.h>23#defineMAXN11045intmax(inta,intb)//求兩數最大值6{7returna>b?a:b;8}910intmin(inta,intb)//求兩數最小值11{12returna<b?a:b;13}1415intget_max(int*arr,intn)//求數組的最大值16{17intmaxx=*arr;18for(inti=1;i<n;i++)19if(*(arr+i)>maxx)20maxx=*(arr+i);21returnmaxx;22}2324intget_min(int*arr,intn)//求數組的最小值25{26intminx=*arr;27for(inti=1;i<n;i++)28if(*(arr+i)<minx)29minx=*(arr+i);30returnminx;31}No.1/23323334intmain()35{36intn,a[MAXN];37scanf("%d",&n);38for(inti=0;i<n;i++)39scanf("%d",&a[i]);4041intres1=get_max(a,n),res2=get_min(a,n);4243printf("%d%d\n",res1,res2);4445intx,y;46scanf("%d%d",&x,&y);47intres3=max(x,y),res4=min(x,y);48printf("%d%d\n",res3,res4);49return0;50}3.排序(冒泡排序、選擇排序等)1#include<stdio.h>23#defineMAXN11045voidbuble_sort(int*arr,intn)//冒泡排序(升序)6{7inttemp;8for(inti=0;i<n;i++)9for(intj=0;j<n-1-i;j++)//注意j的范圍10if(*(arr+j)>*(arr+j+1))//降序改為<11{12temp=*(arr+j);13*(arr+j)=*(arr+j+1);14*(arr+j+1)=temp;15}16}1718intmain()19{20intn,a[MAXN];21scanf("%d",&n);22for(inti=0;i<n;i++)23scanf("%d",&a[i]);2425buble_sort(a,n);2627for(inti=0;i<n;i++)28printf("%d",a[i]);2930return0;31}1#include<stdio.h>23#defineMAXN11045voidselect_sort(int*arr,intn)//冒泡排序(升序)6{7inttemp;8for(inti=0;i<n;i++)9{10intpos=i;//找到當前的最小(大)值11for(intj=i+1;j<n;j++)No.2/2312if(*(arr+j)<*(arr+pos))//降序改為<13pos=j;14temp=*(arr+i);15*(arr+i)=*(arr+pos);16*(arr+pos)=temp;17}18}1920intmain()21{22intn,a[MAXN];23scanf("%d",&n);24for(inti=0;i<n;i++)25scanf("%d",&a[i]);2627select_sort(a,n);2829for(inti=0;i<n;i++)30printf("%d",a[i]);3132return0;33}4.大小寫字母轉換1#include<stdio.h>23#defineMAXN11045charget_c(charc)6{7if(c>='A'&&c<='Z')//大寫轉小寫8returnc+32;9elseif(c>='a'&&c<='z')//小寫轉大寫10returnc-32;11returnc;//其他字符照常返回12}1314voidget_str(char*str)15{16inti=0;17while(*(str+i)!='\0')18{19*(str+i)=get_c(*(str+i));20i++;21}22}2324intmain()25{26chars[MAXN];27gets(s);28get_str(s);29puts(s);30return0;31}5.判別鍵盤輸入字符的類別1#include<stdio.h>23#defineMAXN11045intcount_num=0,count_letter=0,count_space=0,count_other=0;6//開全局,懶得在函數中設置指針傳值78voidget_count(char*str)9{10inti=0;No.3/2311while(*(str+i)!='\0')12{13charc=*(str+i);14if(c>='0'&&c<='9')//數字15count_num++;16elseif(c=='')//空格17count_space++;18elseif((c>='A'&&c<='Z')||(c>='a'&&c<='z'))//字母19//elseif(c>='A'&&c<='Z'||c>='a'&&c<='z')20//此處由于&&優先級高于||可不用加括號21count_letter++;22elsecount_other++;//其他23i++;24}25}2627intmain()28{29chars[MAXN];30gets(s);31get_count(s);32printf("%d%d%d%d\n",count_num,count_letter,count_space,count_other);3334return0;35}6.判別閏年1#include<stdio.h>23intis_leap(intyear)4{5if((year%4==0&&year%100!=0)||year%400==0)6return1;7return0;8}910intmain()11{12intyear;13scanf("%d",&year);1415printf(is_leap(year)?"Yes":"No");1617return0;18}7.百分制成績與等級制成績互相轉換1#include<stdio.h>23intmain()4{5intscore;6scanf("%d",&score);7switch(score/10)8{9case10://此處注意考慮100分10case9:printf("A");break;11case8:printf("B");break;12case7:printf("C");break;13case6:printf("D");break;14default:printf("E");15}16//if(score>=90)17//printf("A");18//elseif(score>=80)19//printf("B");20//elseif(score>=70)No.4/2321//printf("C");22//elseif(score>=60)23//printf("D");24//elseprintf("E");25return0;26}8.求兩個數的最大公因數和最小公倍數1#include<stdio.h>23intgcd(inta,intb)4{5returnb==0?a:gcd(b,a%b);6}78intlcm(inta,intb)9{10returna/gcd(a,b)*b;//先除后乘,防止乘爆11}1213intmain()14{15intx,y;16scanf("%d%d",&x,&y);17printf("%d%d\n",gcd(x,y),lcm(x,y));18return0;19}9.求菲比拉契數列有限項1#include<stdio.h>23intf1(intn)//遞歸寫法4{5if(n<=2)6return1;7returnf1(n-1)+f1(n-2);8}910intf2(intn)//循環(非數組)11{12if(n<=2)13return1;14inta=1,b=1,c;15for(inti=3;i<=n;i++)16c=a+b,a=b,b=c;17returnb;18}1920#defineMAXN11021intarr[MAXN];2223intf3(intn)//循環(數組)24{25arr[1]=arr[2]=1;26for(inti=3;i<=n;i++)27arr[i]=arr[i-1]+arr[i-2];28returnarr[n];29}3031intmain()32{33intn;34scanf("%d",&n);3536printf("%d\n",f1(n));3738printf("%d\n",f2(n));No.5/233940printf("%d\n",f3(n));4142return0;43}10.統計學生成績,包括總成績、平均成績、各分數段人數等1#include<stdio.h>23#defineMAXN11045intcount[11];//統計0~100分數(每10分一段)67intget_sum(int*arr,intn)8{9intres=0;10for(inti=0;i<n;i++)11res+=*(arr+i);12returnres;13}1415voidget_count(int*arr,intn)16{17for(inti=0;i<n;i++)18count[*(arr+i)/10]++;19}2021intmain()22{23intn;24inta[MAXN];25scanf("%d",&n);26for(inti=0;i<n;i++)27scanf("%d",&a[i]);2829intsum=get_sum(a,n);3031doubleave=sum*1./n;//轉為double,可通過*1.強制類型轉換3233printf("%d%lf\n",sum,ave);34get_count(a,n);3536for(inti=0;i<=10;i++)37printf("%d",count[i]);3839return0;40}11.驗證哥德巴赫猜想1例如:28=3+5320=3+17=7+13442=5+37=11+31=13+29=19+231#include<stdio.h>2#include<cmath>34intis_prime(intx)5{6if(x==1)7return0;8for(inti=2;i<sqrt(x);i++)9if(x%i==0)10return0;No.6/2311return1;12}1314intmain()15{16intn;17scanf("%d",&n);18for(inti=2;i<n;i++)19if(is_prime(i)&&is_prime(n-i))20{21printf("%d=%d+%d\n",n,i,n-i);22//break;23}24return0;25}12.用窮舉法求某數段的素數、水仙花數、完全平方數等。1#include<stdio.h>2#include<math.h>34intis_prime(intx)//判斷素數5{6if(x==1)7return0;8for(inti=2;i<sqrt(x);i++)9if(x%i==0)10return0;11return1;12}1314voidget_primes(intl,intr)//求素數15{16for(inti=l;i<=r;i++)17if(is_prime(i))18printf("%d",i);19printf("\n");20}2122voidget_res2(intl,intr)//水仙花數23{24for(inti=l;i<=r;i++)25{26inta=i/100,b=i/10%10,c=i%10;27if(a*a*a+b*b*b+c*c*c==i)28printf("%d",i);29}30printf("\n");31}3233voidget_res3(intl,intr)//求平方數34{35for(inti=l;i<=r;i++)36{37intsq=sqrt(i);38if(sq*sq==i)39printf("%d",i);40}41printf("\n");42}434445intmain()46{47inta,b;48scanf("%d%d",&a,&b);4950get_primes(a,b);No.7/2351get_res2(a,b);5253get_res3(a,b);5455return0;56}13.求近似數(如定積分、用牛頓迭代法或二分法或弦截法求多元方程的根):,,,):1#include<stdio.h>2#include<math.h>34doublef(doublex)5{6returnsin(x)*cos(x);7}89intmain()10{11doublel,r;12intn;13scanf("%lf%lf",&l,&r);14scanf("%d",&n);1516doubleh=(r-l)/n;17doubles=h/2*(f(l)+f(r));18for(inti=1;i<=n-1;i++)19s+=f(l+i*h)*h;2021printf("%.4f\n",s);22return0;23}過
把過根.No.8/23:令.:.1#include<stdio.h>2#include<math.h>34constdoubleeps=1e-5;//誤差5//f=2x^3-4x^2+3x-66doublef(doublex)7{8return2*x*x*x-4*x*x+3*x-6;9}10//f'=6x^2-8x+311doublef_(doublex)12{13return6*x*x-8*x+3;14}1516intmain()17{18doublex;19scanf("%lf",&x);20doublex_0=x,x_1=x_0-f(x_0)/f_(x_0);21while(fabs(x_1-x_0)>=eps)22{23x_0=x_1;24x_1=x_0-f(x_0)/f_(x_0);25}2627printf("%.4f\n",x_1);28return0;29}和在
若和則在和在和.:.1#include<stdio.h>2#include<math.h>34constdoubleeps=1e-5;//誤差5//f=2x^3-4x^2+3x-66doublef(doublex)7{8return2*x*x*x-4*x*x+3*x-6;9}1011intmain()12{13doublel,r,mid;14scanf("%lf%lf",&l,&r);1516while(l+eps<r)17{18mid=(l+r)/2;19//if(fabs(f(mid))<eps)20//break;21if(f(l)*f(mid)<=0)//更新右端點22r=mid;23elsel=mid;24}25No.9/2326printf("%.4f\n",l);//此處r亦可27return0;28}設令.:.1#include<stdio.h>2#include<math.h>34constdoubleeps=1e-5;//誤差5//f=2x^3-4x^2+3x-66doublef(doublex)7{8return2*x*x*x-4*x*x+3*x-6;9}1011intmain()12{13doublel,r;14scanf("%lf%lf",&l,&r);1516doublex=(l*f(r)-r*f(l))/(f(r)-f(l));17while(fabs(f(x))>eps)18{19l=r;20r=x;21x=(l*f(r)-r*f(l))/(f(r)-f(l));22}2324printf("%.4f\n",x);25return0;No.10/2326}14.求兩個矩陣之和、之積1#include<stdio.h>23#defineMAXN11045intn,m;67voidget_matrix(inta[][MAXN],intb[][MAXN],intc[][MAXN])8{9for(inti=0;i<n;i++)10for(intj=0;j<m;j++)11c[i][j]=a[i][j]+b[i][j];12}1314intmain()15{1617inta[MAXN][MAXN],b[MAXN][MAXN],sum[MAXN][MAXN];1819scanf("%d%d",&n,&m);//矩陣同型才能求和2021for(inti=0;i<n;i++)22for(intj=0;j<m;j++)23scanf("%d",&a[i][j]);24for(inti=0;i<n;i++)25for(intj=0;j<m;j++)26scanf("%d",&b[i][j]);2728//for(inti=0;i<n;i++)29//for(intj=0;j<m;j++)30//sum[i][j]=a[i][j]+b[i][j];31get_matrix(a,b,sum);3233for(inti=0;i<n;i++)34{35for(intj=0;j<m;j++)36printf("%d",sum[i][j]);37printf("\n");38}39return0;40}1#include<stdio.h>23#defineMAXN11045intn,m,p;67voidget_matrix(inta[][MAXN],intb[][MAXN],intc[][MAXN])8{9for(inti=0;i<n;i++)10for(intj=0;j<p;j++)11{12c[i][j]=0;13for(intk=0;k<m;k++)14c[i][j]+=a[i][k]*b[k][j];15}16}1718intmain()19{20No./2321inta[MAXN][MAXN],b[MAXN][MAXN],mul[MAXN][MAXN];2223scanf("%d%d%d",&n,&m,&p);//矩陣n*mm*p求積2425for(inti=0;i<n;i++)26for(intj=0;j<m;j++)27scanf("%d",&a[i][j]);28for(inti=0;i<m;i++)29for(intj=0;j<p;j++)30scanf("%d",&b[i][j]);3132//for(inti=0;i<n;i++)33//for(intj=0;j<p;j++)34//{35//mul[i][j]=0;36//for(intk=0;k<m;k++)37//mul[i][j]+=a[i][k]*b[k][j];38//}39get_matrix(a,b,mul);404142for(inti=0;i<n;i++)43{44for(intj=0;j<p;j++)45printf("%d",mul[i][j]);46printf("\n");47}48return0;49}15.統計輸入字符中的單詞個數1#include<stdio.h>2#include<string.h>34#defineMAXN11056intmain()7{8chars[MAXN];9intres=0;10gets(s);1112intlen=strlen(s);13for(inti=0;i<len;i++)14{15if(s[i]!='')//不是空格16{17intj=i;18while(j<len&&s[j]!='')19j++;20res++;21i=j;22}23}2425printf("%d\n",res);2627return0;28}16.最近點對問題(分治)(1///problem/P14292No.12/233#include<stdio.h>4#include<cmath>5#defineMAXN20001067constdoubleinf=0x3f3f3f3f,eps=1e-5;89structPoint{10doublex;11doubley;12}p[MAXN];1314doubleget_dist(structPointa,structPointb)15{16doubledx=a.x-b.x,dy=a.y-b.y;17returnsqrt(dx*dx+dy*dy);18}1920intmain()21{22intn;23doubleres=inf;24scanf("%d",&n);25for(inti=0;i<n;i++)26scanf("%lf%lf",&p[i].x,&p[i].y);2728for(inti=0;i<n;i++)//枚舉兩個點29for(intj=i+1;j<n;j++)30{31doubledist=get_dist(p[i],p[j]);32if(dist+eps<res)//精度保證33res=dist;34}3536printf("%.4f\n",res);37return0;38}()將(,)=令即故.,(.在,
:),,No.13/23,:將,很
.c++.1/////problem/P14292#include<iostream>3#include<cstring>4#include<algorithm>5#include<cmath>67#defineMAXN20001089usingnamespacestd;1011constdoubleinf=0x3f3f3f3f,eps=1e-5;1213intn;14doubleres=inf;15structPoint{16doublex;17doubley;No.14/2318}p[MAXN],temp1[MAXN],temp2[MAXN];1920intcmp_1(Pointa,Pointb)//C++struct在非定義時可不寫21{22if(a.x==b.x)//按照y排序23returna.y<b.y;24returna.x<b.x;///按照x排序25}2627intcmp_2(Pointa,Pointb)28{29returna.y<b.y;30}3132doubleget_dist(Pointa,Pointb)33{34doubledx=a.x-b.x,dy=a.y-b.y;35returnsqrt(dx*dx+dy*dy);36}373839voidmerge(intl,intmid,intr)//歸并排序40{41intcnt=0;42inti=l,j=mid+1;43while(i<=mid&&j<=r)44{45if(p[i].y<p[j].y)46temp1[cnt++]=p[i],i++;47elsetemp1[cnt++]=p[j],j++;48}49while(i<=mid)50temp1[cnt++]=p[i],i++;51while(j<=r)52temp1[cnt++]=p[j],j++;53for(inti=0;i<cnt;i++)54p[l+i]=temp1[i];55}5657voiddfs(intl,intr)58{59//cout<<l<<""<<r<<endl;60if(r-l<=3)61{62for(inti=l;i<=r;i++)63for(intj=i+1;j<=r;j++)64{65doubledist=get_dist(p[i],p[j]);66if(dist+eps<res)67res=dist;68}69sort(p+l,p+r+1,cmp_2);//根據y排序70return;71}7273intmid=(l+r)/2;7475767778intmid_x=p[mid].x;dfs(l,mid),dfs(mid+1,r);//遞歸左右兩邊merge(l,mid,r);intcnt=0;798081828384858687for(inti=l;i<=r;i++){if(fabs(p[i].x-mid_x)+eps<res){//倒著枚舉for(intj=cnt-1;j>=0&&p[i].y-temp2[j].y<res;j--){doubledist=get_dist(p[i],temp2[j]);if(dist+eps<res)No.15/2388res=dist;89}90temp2[cnt++]=p[i];91}92}93}9495intmain()96{97scanf("%d",&n);98for(inti=0;i<n;i++)99scanf("%lf%lf",&p[i].x,&p[i].y);100101sort(p,p+n,cmp_1);102dfs(0,n-1);103104printf("%.4f\n",res);105106return0;107}17.背包問題(動態規劃)有第.前)有.(:...1for(inti=1;i<=n;i++)2for(intj=0;j<=V;j++)3{4if(j<v[i])5dp[i][j]=dp[i-1][j];6elsedp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+w[i]);7}.與.:.與是.:.No.16/231for(inti=1;i<=n;i++)2for(intj=V;j>=0;j--){3if(j<v[i])4dp[j]=dp[j];5elsedp[j]=max(dp[j],dp[j-v[i]]+w[i]);6}.1for(inti=1;i<=n;i++)2for(intj=V;j>=v[i];j--)3dp[j]=max(dp[j],dp[j-v[i]]+w[i]);.1for(inti=1;i<=n;i++){2intv,w;3scanf("%d%d",&v,&w);4for(intj=V;j>=v;j--)5dp[j]=max(dp[j],dp[j-v]+w);6}有第.同前第..1for(inti=1;i<=n;i++)2for(intj=0;j<=V;j++){3intamount=j/v[i];4for(intk=0;k<=amount;k++)5dp[i][j]=max(dp[i][j],dp[i-1][j-k*v[i]]+k*w[i]);6}.:前.將:..No.17/231for(inti=1;i<=n;i++)2for(intj=0;j<=V;j++){3dp[i][j]=dp[i-1][j];4if(j>=v[i])5dp[i][j]=max(dp[i][j],dp[i][j-v[i]]+w[i]);6//dp[i][j]=max(dp[i-1][j],dp[i][j-v[i]]+w[i]);7}1for(inti=1;i<=n;i++)2for(intj=v[i];j<=V;j++)3dp[j]=max(dp[j],dp[j-v[i]]+w[i]);同1for(inti=1;i<=n;i++){2intv,w;3scanf("%d%d",&v,&w);4for(intj=v;j<=V;j++)5dp[j]=max(dp[j],dp[j-v]+w);6}有第..1for(inti=1;i<=n;i++)2for(intj=0;j<=V;j++)3for(intk=0;k<=s[i]&&k<=j/v[i];k++)4dp[i][j]=max(dp[i][j],dp[i-1][j-v[i]*k]+w[i]*k);個和.,.,
.:No.18/23將為.:..,,,
故
..1#include<iostream>2#include<cstring>3#include<algorithm>45#defineMAXN201067usingnamespacestd;89intn,V,cnt;10intv[10*MAXN],w[10*MAXN];11intdp[MAXN];1213intmain()14{15scanf("%d%d",&n,&V);16for(inti=1;i<=n;i++)17{18inttemp_v,temp_w,s;19scanf("%d%d%d",&temp_v,&temp_w,&s);20for(intk=1;k<=s;k*=2)21{22s-=k;23v[++cnt]=k*temp_v;24w[cnt]=k*temp_w;25}26if(s>0)27v[++cnt]=s*temp_v,w[cnt]=s*temp_w;28}2930for(inti=1;i<=cnt;i++)31for(intj=V;j>=v[i];j--)32dp[j]=max(dp[j],dp[j-v[i]]+w[i]);33printf("%d\n",dp[V]);34return0;35}3618.多機調度問題(貪心)由的.No.19/23當.c++.1#include<iostream>2#include<cstring>3#include<algorithm>4#include<queue>56#defineMAXN1001078usingnamespacestd;910intn,m;11structNode{12inttime;13intid;14booloperator<(constNode&a)const//構造小根堆15{16if(time==a.time)17returnid>a.id;18elsereturntime>a.time
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 納稅人信息管理的重要性試題及答案
- 激光技術工程師考試準備策略試題及答案
- 靈活運用不同學習資源備戰育嬰師考試試題及答案
- 紡織生產的管理優化方法試題及答案
- 學好衛生管理考試課程要點試題及答案
- 有效控制焦慮心理迎接育嬰師考試試題及答案
- 文化產品的生命周期管理方法試題及答案
- 尋求國際法試題及答案
- 持續進步的專利考試試題與答案
- 搞笑測試題及答案
- 初中歷史課件:中國古代科技發展史
- 安全閥管理臺賬
- 腫瘤科運用PDCA循環提高疼痛評估的規范率品管圈成果匯報
- 經歷是流經裙邊的水
- 胎兒心臟超聲檢查課件詳解
- 2023年06月天津市便民專線服務中心招考聘用合同制員工筆試題庫含答案解析
- 2023年高速公路監理工程師質量目標責任書
- 抖音政務號運營建設方案版
- 醫學檢驗心壁的組織結構
- 《小池》說課稿 小學一年級語文教案PPT模板下載
- 廣州酒店中英文對照
評論
0/150
提交評論