| #include <stdio.h> |
| #include<math.h> |
| |
| double x1,y11,z1,x2,y2,z2; |
| |
| int main(void) { |
| scanf("%lf,%lf,%lf\n%lf,%lf,%lf",&x1,&y11,&z1,&x2,&y2,&z2); |
| double squ=(x1-x2)*(x1-x2)+(y11-y2)*(y11-y2)+(z1-z2)*(z1-z2); |
| double ans=sqrt((x1-x2)*(x1-x2)+(y11-y2)*(y11-y2)+(z1-z2)*(z1-z2)); |
| printf("%.2lf\n",ans); |
| return 0; |
| } |
| #include <stdio.h> |
| |
| |
| |
| int main(void) { |
| char c;int x,b;scanf("%c%d",&c,&x); |
| if(c=='M') b=x>100?1:0; |
| else b=x>80?1:0; |
| if(b) printf("Beauty\n"); |
| else printf("Not beauty\n"); |
| return 0; |
| } |
| #include <stdio.h> |
| |
| |
| |
| int main(void) { |
| int n,ans=0;scanf("%d",&n); |
| for(int i=1;i<=n;++i) |
| if(n%i==0) ++ans; |
| printf("%d\n",ans); |
| return 0; |
| } |
| #include <stdio.h> |
| |
| int main(void) { |
| double cnt=0; |
| int n,i=1;scanf("%d",&n); |
| while(cnt<=n) |
| { |
| cnt+=1.0/i++; |
| |
| } |
| printf("%d\n",i-1); |
| return 0; |
| } |
这里注意精度,用1.0而不是1
| #include <stdio.h> |
| |
| int n,a[100],gcd=1,lcm=1,maxx=1; |
| |
| int main(void) { |
| scanf("%d",&n); |
| for(int i=1;i<=n;++i) |
| { |
| scanf("%d",&a[i]); |
| maxx*=a[i]; |
| } |
| for(int i=1;i<=a[1];++i) |
| { |
| int b=0; |
| for(int j=1;j<=n;++j) |
| if(a[j]%i) |
| { |
| b=1;break; |
| } |
| if(b==0) gcd=i; |
| } |
| for(int i=a[n];i<=maxx;++i) |
| { |
| int b=0; |
| for(int j=1;j<=n;++j) |
| { |
| if(i%a[j]) |
| { |
| b=1;break; |
| } |
| } |
| if(b==0) |
| { |
| lcm=i; |
| break; |
| } |
| } |
| printf("%d %d\n",gcd,lcm); |
| return 0; |
| } |
直接枚举并判断即可
| #include <stdio.h> |
| |
| int a[200][200],b[200][200]; |
| |
| int main(void) { |
| int n,m;scanf("%d%d",&n,&m); |
| for(int i=1;i<=n;++i) |
| for(int j=1;j<=m;++j) |
| scanf("%d",&a[i][j]); |
| for(int i=1;i<=n;++i) |
| for(int j=1;j<=m;++j) |
| scanf("%d",&b[i][j]); |
| for(int i=1;i<=n;++i,printf("\n")) |
| for(int j=1;j<=m;++j) |
| if(j==m) |
| printf("%d",a[i][j]-b[i][j]); |
| else |
| printf("%d ",a[i][j]-b[i][j]); |
| return 0; |
| } |
| #include <stdio.h> |
| #include<string.h> |
| |
| char a[100]; |
| |
| int main(void) { |
| int n;scanf("%d\n",&n); |
| while(n--) |
| { |
| gets(a);int l=strlen(a); |
| for(int i=0;i<l;++i) |
| { |
| if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z')) |
| { |
| a[i]++; |
| if(a[i]=='Z'+1||a[i]=='z'+1) |
| a[i]-=26; |
| } |
| } |
| puts(a); |
| } |
| return 0; |
| } |
| #include <stdio.h> |
| #include <string.h> |
| |
| int n,k; |
| char a[100][100]; |
| |
| int main(void) { |
| scanf("%d\n",&n); |
| while(n--) |
| { |
| scanf("%s",a[n]);int l=strlen(a[n]); |
| scanf(" %d\n",&k); |
| if(a[0]=='-') printf("-"); |
| for(int i=0;i<l;++i) |
| { |
| if(a[i]=='-') continue; |
| if((l-i-1)%k==0&&a[n][i]!='-'&&i!=l-1) |
| printf("%c,",a[n][i]); |
| else printf("%c",a[n][i]); |
| } |
| printf("\n"); |
| } |
| return 0; |
| } |
注意负数要往前移一个
| #include <stdio.h> |
| |
| int t,n,k; |
| int a[2000],b[2000]; |
| |
| int main(void) { |
| scanf("%d",&t); |
| while(t--) |
| { |
| scanf("%d%d",&n,&k); |
| for(int i=1;i<=n;++i) {scanf("%d",&a[i]);b[i]=i;} |
| for(int i=1;i<n;++i) |
| for(int j=i+1;j<=n;++j) |
| if(a[i]<a[j]||(a[i]==a[j]&&b[i]>b[j])) |
| { |
| int tmp=a[i];a[i]=a[j];a[j]=tmp; |
| tmp=b[i];b[i]=b[j];b[j]=tmp; |
| } |
| k=k<n?k:n;printf("%d\n",k); |
| for(int i=1;i<=k;++i) |
| if(i==k) |
| printf("%d",b[i]); |
| else printf("%d ",b[i]); |
| printf("\n"); |
| } |
| return 0; |
| } |
| #include <stdio.h> |
| #include <string.h> |
| |
| int a[200][200]; |
| int n; |
| |
| int f(int x) |
| { |
| return x<1||x>n; |
| } |
| |
| int main(void) { |
| scanf("%d",&n); |
| int x1=-1,y1=1,x=1,y=1; |
| for(int i=1;i<=n*n;++i) |
| { |
| a[x][y]=i; |
| if(f(x+x1)&&f(y+y1)) |
| { |
| if(x+x1==0) {x++;x1=-x1;y1=-y1;} |
| if(y+y1==0) {y++;x1=-x1;y1=-y1;} |
| } |
| else if(f(x+x1)) {y++;x1=-x1;y1=-y1;} |
| else if(f(y+y1)) {x++;x1=-x1;y1=-y1;} |
| else {x+=x1;y+=y1;} |
| } |
| for(int i=1;i<=n;++i) |
| for(int j=1;j<=n;++j) |
| if(j!=n) printf("%d ",a[i][j]); |
| else printf("%d\n",a[i][j]); |
| return 0; |
| } |
找规律填数即可,这里f函数是算某个坐标是否出界的。
注意前半个三角形和后面半个中间规律可能发生了变化,判断一下即可。
| |
| |
| char a[200],q[200]; |
| int k,m,cnt; |
| |
| int main(void) { |
| scanf("%s",a);scanf("%d",&k); |
| int l=strlen(a),l1=0,l2=l-k; |
| q[0]=a[0]; |
| for(int i=1;i<l;++i) |
| { |
| // if(k==0) break; |
| if(cnt==-1) q[++cnt]=a[i]; |
| else if(q[cnt]>a[i]&&k!=0) |
| { |
| --k;--cnt;--i; |
| } |
| else |
| { |
| q[++cnt]=a[i]; |
| } |
| } |
| while(q[l1]=='0') ++l1; |
| for(int i=l1;i<l2;++i) printf("%c",q[i]); |
| if(l1>=l2) printf("0\n"); |
| return 0; |
| } |
思路:整一个单调队列,如果队尾元素比当前元素更大就出队然后当前元素跟新的队尾元素比较,如果队尾元素小于等于当前元素就入队,知道出队数达到k为止,如果全部入队还有没用完的k,就从队尾扣除,详见代码
(连载中。。。。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效