洛谷 P1618 三连击(升级版) 题解
程序员文章站
2022-05-09 13:49:37
...
啊第一次发题解,这次还是用机(wei)智(suo)的方法AC
注意,本题解仅供娱乐
下面先上原来的代码,只是在原来的 P1008 三连击 上添加了输入。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int s[10]={0};
int fuc(){//用于检查有没有数字重复
sort(s,s+9);
int dud=0;
for(int i=0;i<9;i++)
{
if(s[i]==s[i+1] or s[i]==0)return 0;//有0也不能过,题目要求1-9数字
else dud=1;
}
return dud;//如果条件满足,进入if()
}
int main()
{
int ans[3];
int k1,k2,k3;
int x;
int nans=0;
cin>>k1>>k2>>k3;
for(int i=100;i<=999;i++)
for(int j=100;j<=999;j++)
for(int k=100;k<=999;k++)
{
if(k2*k3*i==k1*k3*j&&k1*k3*j==k1*k2*k)
{ //下面三行把i,j,k每位提取出来
s[0]=i/100;s[1]=i/10%10;s[2]=i%10;
s[3]=j/100;s[4]=j/10%10;s[5]=j%10;
s[6]=k/100;s[7]=k/10%10;s[8]=k%10;
x=fuc();
if(x)
{
ans[0]=i;ans[1]=j;ans[2]=k;
sort(ans,ans+3);//答案升序排列
printf("%d %d %d\n",ans[0],ans[1],ans[2]);//输出写入文件
}
}
}
return 0;
}
快乐地提交,发现果然超时~~~~
于是我继续P1008没有完成的打表梦
因为符合题意的答案很少,没有采用文件输出的形式,毕竟亲眼看着答案一点一点蹦出来好哇。
下面上答案生成后的结果
-----------1 1 1
No!!!
-----------1 1 2
No!!!
-----------1 1 3
No!!!
-----------1 1 4
No!!!
-----------1 1 5
No!!!
-----------1 1 6
No!!!
-----------1 1 7
No!!!
-----------1 1 8
No!!!
-----------1 1 9
No!!!
-----------1 2 2
No!!!
-----------1 2 3
192 384 576
219 438 657
273 546 819
327 654 981
-----------1 2 4
No!!!
-----------1 2 5
No!!!
-----------1 2 6
No!!!
-----------1 2 7
No!!!
-----------1 2 8
No!!!
-----------1 2 9
No!!!
-----------1 3 3
No!!!
-----------1 3 4
No!!!
-----------1 3 5
129 387 645
-----------1 3 6
No!!!
-----------1 3 7
No!!!
-----------1 3 8
No!!!
-----------1 3 9
No!!!
-----------1 4 4
No!!!
-----------1 4 5
No!!!
-----------1 4 6
No!!!
-----------1 4 7
No!!!
-----------1 4 8
No!!!
-----------1 4 9
No!!!
-----------1 5 5
No!!!
-----------1 5 6
No!!!
-----------1 5 7
No!!!
-----------1 5 8
No!!!
-----------1 5 9
No!!!
-----------1 6 6
No!!!
-----------1 6 7
No!!!
-----------1 6 8
No!!!
-----------1 6 9
No!!!
-----------1 7 7
No!!!
-----------1 7 8
No!!!
-----------1 7 9
No!!!
-----------1 8 8
No!!!
-----------1 8 9
No!!!
-----------1 9 9
No!!!
-----------2 2 2
No!!!
-----------2 2 3
No!!!
-----------2 2 4
No!!!
-----------2 2 5
No!!!
-----------2 2 6
No!!!
-----------2 2 7
No!!!
-----------2 2 8
No!!!
-----------2 2 9
No!!!
-----------2 3 3
No!!!
-----------2 3 4
No!!!
-----------2 3 5
No!!!
-----------2 3 6
No!!!
-----------2 3 7
No!!!
-----------2 3 8
No!!!
-----------2 3 9
No!!!
-----------2 4 4
No!!!
-----------2 4 5
No!!!
-----------2 4 6
192 384 576
219 438 657
273 546 819
327 654 981
-----------2 4 7
No!!!
-----------2 4 8
No!!!
-----------2 4 9
No!!!
-----------2 5 5
No!!!
-----------2 5 6
No!!!
-----------2 5 7
No!!!
-----------2 5 8
No!!!
-----------2 5 9
No!!!
-----------2 6 6
No!!!
-----------2 6 7
No!!!
-----------2 6 8
No!!!
-----------2 6 9
No!!!
-----------2 7 7
No!!!
-----------2 7 8
No!!!
-----------2 7 9
No!!!
-----------2 8 8
No!!!
-----------2 8 9
No!!!
-----------2 9 9
No!!!
-----------3 3 3
No!!!
-----------3 3 4
No!!!
-----------3 3 5
No!!!
-----------3 3 6
No!!!
-----------3 3 7
No!!!
-----------3 3 8
No!!!
-----------3 3 9
No!!!
-----------3 4 4
No!!!
-----------3 4 5
No!!!
-----------3 4 6
No!!!
-----------3 4 7
No!!!
-----------3 4 8
No!!!
-----------3 4 9
No!!!
-----------3 5 5
No!!!
-----------3 5 6
No!!!
-----------3 5 7
No!!!
-----------3 5 8
No!!!
-----------3 5 9
No!!!
-----------3 6 6
No!!!
-----------3 6 7
No!!!
-----------3 6 8
No!!!
-----------3 6 9
192 384 576
219 438 657
273 546 819
327 654 981
-----------3 7 7
No!!!
-----------3 7 8
213 497 568
321 749 856
-----------3 7 9
No!!!
-----------3 8 8
No!!!
-----------3 8 9
No!!!
-----------3 9 9
No!!!
-----------4 4 4
No!!!
-----------4 4 5
No!!!
-----------4 4 6
No!!!
-----------4 4 7
No!!!
-----------4 4 8
No!!!
-----------4 4 9
No!!!
-----------4 5 5
No!!!
-----------4 5 6
492 615 738
-----------4 5 7
No!!!
-----------4 5 8
No!!!
-----------4 5 9
No!!!
-----------4 6 6
No!!!
-----------4 6 7
No!!!
-----------4 6 8
No!!!
-----------4 6 9
No!!!
-----------4 7 7
No!!!
-----------4 7 8
No!!!
-----------4 7 9
No!!!
-----------4 8 8
No!!!
-----------4 8 9
No!!!
-----------4 9 9
No!!!
-----------5 5 5
No!!!
-----------5 5 6
No!!!
-----------5 5 7
No!!!
-----------5 5 8
No!!!
-----------5 5 9
No!!!
-----------5 6 6
No!!!
-----------5 6 7
No!!!
-----------5 6 8
No!!!
-----------5 6 9
No!!!
-----------5 7 7
No!!!
-----------5 7 8
No!!!
-----------5 7 9
No!!!
-----------5 8 8
No!!!
-----------5 8 9
No!!!
-----------5 9 9
No!!!
-----------6 6 6
No!!!
-----------6 6 7
No!!!
-----------6 6 8
No!!!
-----------6 6 9
No!!!
-----------6 7 7
No!!!
-----------6 7 8
No!!!
-----------6 7 9
No!!!
-----------6 8 8
No!!!
-----------6 8 9
No!!!
-----------6 9 9
No!!!
-----------7 7 7
No!!!
-----------7 7 8
No!!!
-----------7 7 9
No!!!
-----------7 8 8
No!!!
-----------7 8 9
No!!!
-----------7 9 9
No!!!
-----------8 8 8
No!!!
-----------8 8 9
No!!!
-----------8 9 9
No!!!
-----------9 9 9
No!!!
咳咳 我知道这玩意儿很长,所以我把答案提取了一下
下面上AC代码~~~~
//数据提交程序
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int a,b,c,n=0;
cin>>a>>b>>c;
if(a==1&&b==2&&c==3||a==2&&b==4&&c==6||a==3&&b==6&&c==9)
{n=1;
printf("192 384 576\n219 438 657\n273 546 819\n327 654 981\n");
}
if(a==1&&b==3&&c==5)
{
n=1;printf("129 387 645");
}
if(a==3&&b==7&&c==8)
{
n=1;printf("213 497 568\n321 749 856");
}
if(a==4&&b==5&&c==6)
{
n=1;printf("492 615 738");
}
if(a==123&&b==456&&c==789)//一开始漏了这段
{
n=1;printf("123 456 789");
}
if(n==0)cout<<"No!!!";
}
“if(a==123&&b==456&&c==789)”
一开始没有AC,就是差了这段代码。愉快地使用 下载输入数据大法。。真没想到还能这样。。溜了溜了
上一篇: MySQL多表联查优化经历
下一篇: 获取服务器的路径