P1008 三连击
Posted 自为
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1008 三连击相关的知识,希望对你有一定的参考价值。
题目背景
本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。
题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
输入输出格式
输入格式:
木有输入
输出格式:
若干行,每行3个数字。按照每行第一个数字升序排列。
输入输出样例
输入样例#1:
输出样例#1:
192 384 576 * * * ... * * * (输出被和谐了)
mdzz这么简单的题我居然WA了四遍也是没谁了,,,,
思路比较简单,就是模拟。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int MAXN=2000050; const int maxn=0x7fffffff; void read(int &n){char c=‘+‘;int x=0;bool flag=0;while(c<‘0‘||c>‘9‘){c=getchar();if(c==‘-‘)flag=1;} while(c>=‘0‘&&c<=‘9‘){x=x*10+(c-48);c=getchar();}flag==1?n=-x:n=x;} int pd[15]; int main() { for(int i=100;i<=999;i++) { int a=i,b=i*2,c=i*3;if(b>999||c>999||a==0||b==0||c==0)continue; int tot=0; bool flag=0; memset(pd,0,sizeof(pd)); while(a) { if(!pd[a%10]&&(a%10!=0)) pd[a%10]=1,a/=10; else { flag=1;break; } } if(flag==1)continue; while(b) { if(!pd[b%10]&&(b%10!=0)) pd[b%10]=1,b/=10; else { flag=1;break; } } if(flag==1)continue; while(c) { if(!pd[c%10]&&(c%10!=0)) pd[c%10]=1,c/=10; else { flag=1;break; } } if(flag==1)continue; printf("%d %d %d\n",i,i*2,i*3); } return 0; }
以上是关于P1008 三连击的主要内容,如果未能解决你的问题,请参考以下文章