| #include <stdio.h> |
| |
| |
| |
| int main(void) { |
| double f;scanf("%lf",&f); |
| printf("%.5lf",5.0*(f-32)/9); |
| return 0; |
| } |
| #include <stdio.h> |
| |
| int a[2000]; |
| |
| int main(void) { |
| int n,k,ans=0;scanf("%d",&n); |
| for(int i=1;i<=n;++i) |
| { |
| scanf("%d",&a[i]); |
| }scanf("%d",&k); |
| for(int i=1;i<=n;++i) |
| if(a[i]<=k) |
| ++ans; |
| printf("%d\n",ans); |
| return 0; |
| } |
| #include <stdio.h> |
| |
| |
| |
| int main(void) { |
| int n,m,ans=0;scanf("%d%d",&n,&m); |
| for(int i=1;i<=n;++i) |
| for(int j=1;j<=m;++j) |
| { |
| int x;scanf("%d",&x); |
| ans+=x; |
| } |
| printf("%d\n",ans); |
| return 0; |
| } |
| #include <stdio.h> |
| |
| int x[2000],y[2000],r[2000]; |
| |
| int main(void) { |
| int n;scanf("%d",&n); |
| for(int i=1;i<=n;++i) scanf("%d%d%d",&x[i],&y[i],&r[i]); |
| for(int i=1;i<n;++i) |
| for(int j=i+1;j<=n;++j) |
| if((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])<(r[i]+r[j])*(r[i]+r[j])) |
| { |
| printf("Yes\n"); |
| return 0; |
| } |
| printf("No\n"); |
| return 0; |
| } |
| |
| #include <stdio.h> |
| char a[256],b[256],c[256],d[256]; |
| |
| int main(void) { |
| |
| gets(a);gets(b);gets(c);gets(d); |
| int i=0; |
| for(int j=0;j<255;++j){ |
| if(a[i]==b[i]){ |
| i++; |
| } |
| else{ |
| b[i]='\0'; |
| i=0; |
| break; |
| } |
| } |
| for(int j=0;j<255;++j){ |
| if(c[i]==b[i]){ |
| i++; |
| } |
| else{ |
| c[i]='\0'; |
| i=0; |
| break; |
| } |
| } |
| for(int j=0;j<255;++j){ |
| if(d[i]==c[i]){ |
| i++; |
| } |
| else{ |
| d[i]='\0'; |
| i=0; |
| break; |
| } |
| } |
| puts(d); |
| return 0; |
| } |
dalaojxl的代码,思想是两两比较找公共部分
| #include <stdio.h> |
| |
| int main(void) { |
| int n,k,sum=0;scanf("%d%d",&n,&k); |
| for(int i=1;i<=n;++i) |
| { |
| sum+=k; |
| k=k*10+k%10; |
| } |
| printf("%d\n",sum); |
| return 0; |
| } |
考察知识点:如何取一个数的第k位(使用/和%)
| #include <stdio.h> |
| |
| int a[200][10]; |
| |
| int main(void) { |
| int n,maxi,maxsum=0;scanf("%d",&n); |
| for(int i=1;i<=n;++i) |
| { |
| int maxx=0,minx=100,sum=0; |
| for(int j=1;j<=5;++j) |
| { |
| scanf("%d",&a[i][j]); |
| if(maxx<a[i][j]) maxx=a[i][j]; |
| if(minx>a[i][j]) minx=a[i][j]; |
| sum+=a[i][j]; |
| } |
| if(maxsum<sum-minx-maxx) maxsum=sum-minx-maxx,maxi=i; |
| } |
| printf("%d %d\n",maxi,maxsum); |
| return 0; |
| } |
按题目要求记录和比较即可,细节比较多,写的时候多注意
| |
| |
| int a[20],b[20],a1,b1; |
| |
| int main(void) { |
| for(int i=1;i<=10;++i) |
| { |
| int x;scanf("%d",&x); |
| if(x%2) a[++a1]=x; |
| else b[++b1]=x; |
| } |
| for(int i=1;i<a1;++i) |
| for(int j=i+1;j<=a1;++j) |
| if(a[i]<a[j]) |
| {int tmp=a[i];a[i]=a[j];a[j]=tmp;} |
| for(int i=1;i<b1;++i) |
| for(int j=i+1;j<=b1;++j) |
| if(b[i]>b[j]) |
| {int tmp=b[i];b[i]=b[j];b[j]=tmp;} |
| for(int i=1;i<a1;++i) printf("%d ",a[i]); |
| if(a1&&b1) printf("%d ",a[a1]); |
| else if(a1) printf("%d\n",a[a1]); |
| for(int i=1;i<b1;++i) printf("%d ",b[i]); |
| if(b1) printf("%d\n",b[b1]); |
| return 0; |
| } |
注意一些特殊情况的判断
| #include <stdio.h> |
| |
| int a[2000],b[2000]; |
| |
| int main(void) { |
| int n,m,ans=0;scanf("%d%d",&n,&m); |
| for(int i=1;i<=n;++i) scanf("%d%d",&a[i],&b[i]); |
| for(int i=1;i<n;++i) |
| for(int j=i+1;j<=n;++j) |
| if(b[i]<b[j]) |
| { |
| int tmp=b[i];b[i]=b[j];b[j]=tmp; |
| tmp=a[i];a[i]=a[j];a[j]=tmp; |
| } |
| for(int i=1;i<=n;++i) |
| { |
| if(m<a[i]) break; |
| m-=a[i];++ans; |
| } |
| printf("%d\n",ans); |
| return 0; |
| } |
排序
| #include <stdio.h> |
| #include <string.h> |
| |
| int b[400]; |
| char c[400]; |
| |
| int main(void) { |
| int n;scanf("%d\n",&n); |
| for(int i=1;i<=n;++i) |
| { |
| for(int j=0;j<=200;++j) c[j]='\0'; |
| gets(c);int l=strlen(c); |
| for(int j=0;j<l;++j) |
| { |
| if(c[j]!=' '){ |
| ++b[c[j]-'a']; |
| } |
| } |
| for(int j=0;j<=24;++j) |
| { |
| printf("%d ",b[j]); |
| b[j]=0; |
| } |
| printf("%d\n",b[25]);b[25]=0; |
| } |
| return 0; |
| } |
建议使用gets读入,注意回车的过滤。(第8行)
| #include <stdio.h> |
| |
| int n,t,cnt=1,ans,minx=1000000000; |
| int a[100]; |
| |
| int main(void) { |
| scanf("%d%d",&n,&t); |
| for(int i=1;i<=n;++i,cnt*=2) scanf("%d",&a[i]); |
| for(int i=0;i<cnt;++i) |
| { |
| int i1=i;ans=0; |
| for(int j=1;j<=n;++j) |
| { |
| ans+=a[j]*(i1%2); |
| i1/=2; |
| } |
| if(ans>=t&&minx>ans) minx=ans; |
| } |
| if(minx==1000000000) printf("0\n"); |
| else printf("%d\n",minx); |
| return 0; |
| } |
方法一递归:每次选一件商品,然后递归将问题转化成已经解决的问题,就不放代码了(因为我没写
方法二状态压缩:考虑到每种物品都只有买或不买两种选择,我们用一个n位二进制数来储存n件商品购买时所有可能的情况,去最后一位(1或0)直接%2即可,代码见上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】