华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1202|回复: 3
打印 上一主题 下一主题

P1008 三连击

[复制链接]

51

主题

61

帖子

222

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
222
跳转到指定楼层
楼主
发表于 2018-6-11 10:33:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://www.luogu.org/problemnew/show/P1008
本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

将 1,2,⋯,9 共9 个数分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成 1:2:3 的比例,试求出所有满足条件的 3 个三位数。
回复

使用道具 举报

50

主题

215

帖子

619

积分

高级会员

Rank: 4

积分
619
沙发
发表于 2018-6-27 07:38:13 | 只看该作者
  1. #include<iostream>
  2. using namespace std;
  3. int a[10]= {},i,j,k,m,flag;
  4. int main()
  5. {
  6.     for(i=123; i<=329; i++)
  7.     {
  8.         flag=1;for(m=1; m<=9; m++)a[m]=0;
  9.         j=2*i;
  10.         k=3*i;
  11.         a[i/100]=i/100;
  12.         a[(i/10)%10]=(i/10)%10;
  13.         a[i%10]=i%10;
  14.         a[j/100]=j/100;
  15.         a[(j/10)%10]=(j/10)%10;
  16.         a[j%10]=j%10;
  17.         a[k/100]=k/100;
  18.         a[(k/10)%10]=(k/10)%10;
  19.         a[k%10]=k%10;
  20.         for(m=1; m<=9; m++)
  21.             if(a[m]==0)flag=0;
  22.         if(flag)
  23.             cout<<i<<" "<<j<<" "<<k<<endl;
  24.     }
  25.     return 0;
  26. }
复制代码
回复 支持 反对

使用道具 举报

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
板凳
发表于 2018-7-1 20:32:38 | 只看该作者
  1. #include<iostream>
  2. using namespace std;
  3. int x,xx,xxx;
  4. int a[10],s[10],i;
  5. bool b;
  6. int main()
  7. {
  8.     for (x=100; x<=1000/3; x++)
  9.     {
  10.         xx=x+x;
  11.         xxx=xx+x;
  12.         a[1]=x/100;
  13.         a[2]=x/10%10;
  14.         a[3]=x%10;
  15.         a[4]=xx/100;
  16.         a[5]=xx/10%10;
  17.         a[6]=xx%10;
  18.         a[7]=xxx/100;
  19.         a[8]=xxx/10%10;
  20.         a[9]=xxx%10;
  21.         for (i=1; i<=9; i++) s[i]=1;
  22.         for (i=1; i<=9; i++) s[a[i]]--;
  23.         b=1;
  24.         for (i=1; i<=9; i++) if (s[i]!=0) b=0;
  25.         if (b) cout<<x<<' '<<xx<<' '<<xxx<<endl;

  26.     }

  27.     return 0;
  28. }
复制代码
回复 支持 反对

使用道具 举报

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
地板
发表于 2021-5-22 17:56:44 | 只看该作者
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int x1,x2,x3,k,a[10],i,b;
  4. int main()
  5. {
  6.         for (x1=100; x1<=999/3; x1++)
  7.                 {
  8.                         x2=x1*2,x3=x1*3;
  9.                         b=1;
  10.                 for (i=1;i<=9;i++) a[i]=1;
  11.                 
  12.                         k=x1/100%10,a[k]=0;
  13.                 k=x1/10%10,a[k]=0;
  14.                 k=x1/1%10,a[k]=0;
  15.                        
  16.                         k=x2/100%10,a[k]=0;
  17.                 k=x2/10%10,a[k]=0;
  18.                 k=x2/1%10,a[k]=0;
  19.                        
  20.                         k=x3/100%10,a[k]=0;
  21.                 k=x3/10%10,a[k]=0;
  22.                 k=x3/1%10,a[k]=0;
  23.                        
  24.                         for (i=1;i<=9;i++) if (a[i]==1) b=0;
  25.                        
  26.                         if (b==1) cout<<x1<<' '<<x2<<' '<<x3<<endl;
  27.                 }
  28.         return 0;
  29. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 00:27 , Processed in 0.118391 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表