ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

P1008 [NOIP1998 普及组] 三连击

2022-08-14 08:00:56  阅读:199  来源: 互联网

标签:10 连击 P1008 bj flag ij NOIP1998 ijj 100


试题分析:将 1到9九个数分成 3 组,分别组成 3 个三位数,且使这 3个三位数构成 1:2:3的比例,数值较小,所以暴力枚举

算法分析:因为4*3=12,超过了10,所以百位的数最多为3,因为1到9每个数都要出现,所以不超过1000,且要判断是否全部出现,可以通过从第一个数高位往下依次乘应乘的倍数,过10便分离高位加1,最后判断是否有重复的

#include<bits/stdc++.h>
using namespace std;
int main(){
int n,i,j,m,a,b,c,d[11],ij,bj,ijj,flag;
for(i=1;i<=3;i++){
for(j=1;j<=9;j++){
if(i!=j){
for(m=1;m<=9;m++){
if(i!=m&&j!=m&&(i*100+j*10+m)*3<1000){
a=i*100+j*10+m;
b=(i*100+j*10+m)*2;
c=(i*100+j*10+m)*3;
d[1]=m;
d[2]=i;
d[3]=j;
bj=4;
for(ij=2;ij<=3;ij++){
d[bj]=ij*i;
bj++;
d[bj]=ij*j;
if(ij*j>10){
d[bj-1]=d[bj-1]+d[bj]/10;
d[bj]=d[bj]%10;
}
bj++;
d[bj]=ij*m;
if(ij*m>10){
d[bj-1]=d[bj-1]+d[bj]/10;
d[bj]=d[bj]%10;
}
bj++;
}
flag=0;
for(ij=1;ij<=8;ij++){
for(ijj=ij+1;ijj<=9;ijj++){
if(d[ij]==d[ijj]){
flag=1;
break;
}
}
if(flag==1){
break;
}
}
if(flag==0){
cout<<a<<" "<<b<<" "<<c<<endl;
}
}
}
}
}
}
return 0;
}

标签:10,连击,P1008,bj,flag,ij,NOIP1998,ijj,100
来源: https://www.cnblogs.com/wangjunlong9948/p/16584744.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有