83 条题解
-
0alexshan LV 8 @ 2017-05-15 21:50:46
暴力美学
int main()
{
for(int a=1;a<=9;a++)
{
ae[0]=a;
for(int b=1;b<=9;b++)
{
ae[1]=b;
for(int c=1;c<=9;c++)
{
ae[2]=c;
for(int d=1;d<=9;d++)
{
ae[3]=d;
for(int e=1;e<=9;e++)
{
ae[4]=e;
for(int f=1;f<=9;f++)
{
ae[5]=f;
for(int g=1;g<=9;g++)
{
ae[6]=g;
for(int h=1;h<=9;h++)
{
ae[7]=h;
for(int i=1;i<=9;i++)
{
ae[8]=i;
if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i&&d!=e&&d!=f&&d!=g&&d!=h&&d!=i&&e!=f&&e!=g&&e!=h&&e!=i&&f!=g&&f!=h&&f!=i&&g!=h&&g!=i&&h!=i)
{
int t1,t2,t3;
t1=ae[0]*100+ae[1]*10+ae[2];
t2=ae[3]*100+ae[4]*10+ae[5];
t3=ae[6]*100+ae[7]*10+ae[8];
if(t1*2==t2&&t1*3==t3)cout<<t1<<" "<<t2<<" "<<t3<<endl;
}
}
}
}
}
}
}
}
}
}
return 0;
} -
02017-04-25 19:45:48@
#include<stdio.h> int main() { int a1, a2, a3; int num[9]; int i, j, k; for (a1 = 123; a1 < 329; a1++) { k = 1; a2 = a1 * 2, a3 = a1 * 3; num[0] = a1 / 100, num[1] = (a1 / 10) % 10, num[2] = a1 % 10; num[3] = a2 / 100, num[4] = (a2 / 10) % 10, num[5] = a2 % 10; num[6] = a3 / 100, num[7] = (a3 / 10) % 10, num[8] = a3 % 10; //按顺序把每个数字存入数组 for (i = 0; i < 9; i++) //数组中的数两两不等且不等于0 for (j = i + 1; j < 9; j++) if (num[i] == 0 || num[j] == 0 || num[i] == num[j]) { k = 0; //不满足条件则将开关关闭 break; } if (k == 1) printf("%d %d %d\n", a1, a2, a3); } getchar(); return 0; }
-
02017-04-23 14:41:11@
#include<stdio.h>
main()
{
int i,j,k,h,s;
int a[10];
for(i=123;i*3<=987;i++)
{
for(h=1;h<10;h++)
a[h]=0;
a[i/100]=1;
a[i/10%10]=1;
a[i%10]=1;
j=i*2;
a[j/100]=1;
a[j/10%10]=1;
a[j%10]=1;
k=i*3;
a[k/100]=1;
a[k/10%10]=1;
a[k%10]=1;
for(s=0,h=1;h<10;h++)
s=s+a[h];
if(s==9)
printf("%d %d %d\n",i,j,k);
}
} -
02017-04-17 10:04:02@
两种方法:
第一种赖皮法//p1772 #include<iostream> using namespace std; int main() { std::ios::sync_with_stdio(false); cout<<"192 384 576"<<endl; cout<<"219 438 657"<<endl; cout<<"273 546 819"<<endl; cout<<"327 654 981"<<endl; }
第二种暴力法
//p1772 #include<iostream> using namespace std; int f(int x,int y,int z) { return x*100+y*10+z; } int main() { int a[9]; for (a[0]=1;a[0]<10;a[0]++) for (a[1]=1;a[1]<10;a[1]++) if (a[0]!=a[1]) for (a[2]=1;a[2]<10;a[2]++) if ((a[0]!=a[2])&&(a[1]!=a[2])) for (a[3]=1;a[3]<10;a[3]++) if ((a[0]!=a[3])&&(a[1]!=a[3])&&(a[2]!=a[3])) for (a[4]=1;a[4]<10;a[4]++) if ((a[0]!=a[4])&&(a[1]!=a[4])&&(a[2]!=a[4])&&(a[3]!=a[4])) for (a[5]=1;a[5]<10;a[5]++) if ((a[0]!=a[5])&&(a[1]!=a[5])&&(a[2]!=a[5])&&(a[3]!=a[5])&&(a[4]!=a[5])) for (a[6]=1;a[6]<10;a[6]++) if ((a[0]!=a[6])&&(a[1]!=a[6])&&(a[2]!=a[6])&&(a[3]!=a[6])&&(a[4]!=a[6])&&(a[5]!=a[6])) for (a[7]=1;a[7]<10;a[7]++) if ((a[0]!=a[7])&&(a[1]!=a[7])&&(a[2]!=a[7])&&(a[3]!=a[7])&&(a[4]!=a[7])&&(a[5]!=a[7])&&(a[6]!=a[7])) for (a[8]=1;a[8]<10;a[8]++) if ((a[0]!=a[8])&&(a[1]!=a[8])&&(a[2]!=a[8])&&(a[3]!=a[8])&&(a[4]!=a[8])&&(a[5]!=a[8])&&(a[6]!=a[8])&&(a[7]!=a[8])) if ((3*f(a[0],a[1],a[2])==f(a[6],a[7],a[8]))&&(2*f(a[0],a[1],a[2])==f(a[3],a[4],a[5]))) cout<<f(a[0],a[1],a[2])<<' '<<f(a[3],a[4],a[5])<<' '<<f(a[6],a[7],a[8])<<endl; return 0; }
-
02017-04-07 18:06:50@
#include<stdio.h>
int q(int a,int b,int c)
{
b=2*a;
c=3*a;
int h,i,j,k,l,m,n,o,p;
h=a%10;
i=(a/10)%10;
j=(a/100)%10;
k=b%10;
l=(b/10)%10;
m=(b/100)%10;
n=c%10;
o=(c/10)%10;
p=(c/100)%10;
if(h!=i && h!=j && h!=k && h!=l && h!=m && h!=n && h!=o && h!=p && h!=0)
if(i!=j && i!=k && i!=l && i!=m && i!=n && i!=o && i!=p && i!=0)
if(j!=k && j!=l && j!=m && j!=n && j!=o && j!=p && j!=0)
if(k!=l && k!=m && k!=n && k!=o && k!=p && k!=0)
if(l!=m && l!=n && l!=o && l!=p && l!=0)
if(m!=n && m!=o && m!=p && m!=0)
if(n!=o && n!=p && n!=0)
if(o!=p && o!=0)
if(p!=0)
printf("%d %d %d\n",a,b,c);
}
int main()
{
int a;
int b;
int c;
for(a=100;a<333;a++)
q(a,b,c);
} -
02017-04-07 18:06:30@
#include<stdio.h>
int q(int a,int b,int c)
{
b=2*a;
c=3*a;
int h,i,j,k,l,m,n,o,p;
h=a%10;
i=(a/10)%10;
j=(a/100)%10;
k=b%10;
l=(b/10)%10;
m=(b/100)%10;
n=c%10;
o=(c/10)%10;
p=(c/100)%10;
if(h!=i && h!=j && h!=k && h!=l && h!=m && h!=n && h!=o && h!=p && h!=0)
if(i!=j && i!=k && i!=l && i!=m && i!=n && i!=o && i!=p && i!=0)
if(j!=k && j!=l && j!=m && j!=n && j!=o && j!=p && j!=0)
if(k!=l && k!=m && k!=n && k!=o && k!=p && k!=0)
if(l!=m && l!=n && l!=o && l!=p && l!=0)
if(m!=n && m!=o && m!=p && m!=0)
if(n!=o && n!=p && n!=0)
if(o!=p && o!=0)
if(p!=0)
printf("%d %d %d\n",a,b,c);
}
int main()
{
int a;
int b;
int c;
for(a=100;a<333;a++)
q(a,b,c);
} -
02017-04-07 18:06:22@
#include<stdio.h>
int q(int a,int b,int c)
{
b=2*a;
c=3*a;
int h,i,j,k,l,m,n,o,p;
h=a%10;
i=(a/10)%10;
j=(a/100)%10;
k=b%10;
l=(b/10)%10;
m=(b/100)%10;
n=c%10;
o=(c/10)%10;
p=(c/100)%10;
if(h!=i && h!=j && h!=k && h!=l && h!=m && h!=n && h!=o && h!=p && h!=0)
if(i!=j && i!=k && i!=l && i!=m && i!=n && i!=o && i!=p && i!=0)
if(j!=k && j!=l && j!=m && j!=n && j!=o && j!=p && j!=0)
if(k!=l && k!=m && k!=n && k!=o && k!=p && k!=0)
if(l!=m && l!=n && l!=o && l!=p && l!=0)
if(m!=n && m!=o && m!=p && m!=0)
if(n!=o && n!=p && n!=0)
if(o!=p && o!=0)
if(p!=0)
printf("%d %d %d\n",a,b,c);
}
int main()
{
int a;
int b;
int c;
for(a=100;a<333;a++)
q(a,b,c);
} -
02017-03-29 21:50:13@
begin
writeln('192 384 576');
writeln('219 438 657');
writeln('273 546 819');
writeln('327 654 981');
end. -
02017-03-18 09:19:34@
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int ok(int a,int b,int c,int d,int e,int f,int g,int h,int i){
int aaa=a*100+b*10+c;
int bbb=d*100+e*10+f;
int ccc=g*100+h*10+i;
if(aaa*2==bbb && aaa*3==ccc);
else return 0;
if(a!=b && a!=c && a!=d && a!=e && a!=f && a!=g && a!=h && a!=i)
if(b!=c && b!=d && b!=e && b!=f && b!=g && b!=h && b!=i)
if(c!=d && c!=e && c!=f && c!=g && c!=h && c!=i)
if(d!=e && d!=f && d!=g && d!=h && d!=i)
if(e!=f && e!=g && e!=h && e!=i)
if(f!=g && f!=h && f!=i)
if(g!=h && g!=i)
if(h!=i)return 1;
return 0;
}
int main(){
int i,j,k,n,m,a,b,c,d,e,f,g,h,l,o,p,q;
printf("192 384 576\n");
printf("219 438 657\n");
printf("273 546 819\n");
printf("327 654 981\n");
// for(i=1;i<=9;i++)
// for(j=1;j<=9;j++)
// for(k=1;k<=9;k++)
// for(a=1;a<=9;a++)
// for(b=1;b<=9;b++)
// for(c=1;c<=9;c++)
// for(d=1;d<=9;d++)
// for(e=1;e<=9;e++)
// for(f=1;f<=9;f++)
// if(ok(i,j,k,a,b,c,d,e,f)){
// printf("%d ",i*100+j*10+k);
// printf("%d ",a*100+b*10+c);
// printf("%d\n",d*100+e*10+f);
// }
return 0;
} -
02017-03-18 09:19:24@
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int ok(int a,int b,int c,int d,int e,int f,int g,int h,int i){
int aaa=a*100+b*10+c;
int bbb=d*100+e*10+f;
int ccc=g*100+h*10+i;
if(aaa*2==bbb && aaa*3==ccc);
else return 0;
if(a!=b && a!=c && a!=d && a!=e && a!=f && a!=g && a!=h && a!=i)
if(b!=c && b!=d && b!=e && b!=f && b!=g && b!=h && b!=i)
if(c!=d && c!=e && c!=f && c!=g && c!=h && c!=i)
if(d!=e && d!=f && d!=g && d!=h && d!=i)
if(e!=f && e!=g && e!=h && e!=i)
if(f!=g && f!=h && f!=i)
if(g!=h && g!=i)
if(h!=i)return 1;
return 0;
}
int main(){
int i,j,k,n,m,a,b,c,d,e,f,g,h,l,o,p,q;
printf("192 384 576\n");
printf("219 438 657\n");
printf("273 546 819\n");
printf("327 654 981\n");
// for(i=1;i<=9;i++)
// for(j=1;j<=9;j++)
// for(k=1;k<=9;k++)
// for(a=1;a<=9;a++)
// for(b=1;b<=9;b++)
// for(c=1;c<=9;c++)
// for(d=1;d<=9;d++)
// for(e=1;e<=9;e++)
// for(f=1;f<=9;f++)
// if(ok(i,j,k,a,b,c,d,e,f)){
// printf("%d ",i*100+j*10+k);
// printf("%d ",a*100+b*10+c);
// printf("%d\n",d*100+e*10+f);
// }
return 0;
} -
02017-03-13 10:30:05@
#include<iostream> #include<cstdio> #include<cmath> using namespace std; inline void check(int x,int y,int z) { bool vis[10]={0}; vis[x]=vis[y]=vis[z]=1; int t=x*100+y*10+z; int m1=t*2; vis[m1/100]=1;vis[(m1%100)/10]=1;vis[m1%10]=1; int m2=t*3; vis[m2/100]=1;vis[(m2%100)/10]=1;vis[m2%10]=1; for(int i=1;i<=9;i++) if(!vis[i]) return; printf("%d %d %d\n",t,m1,m2); } int main() { for(int i=1;i<=9;++i) for(int j=1;j<=9;++j) for(int k=1;k<=9;++k) { check(i,j,k); } }
-
02012-11-13 18:23:40@
├ 测试数据 01:答案正确... (31ms, 412KB)
枚举+剪枝AC了,但没有秒杀……
var
a,b,c,o,p,q,i,j,k:integer;
begin
for a:=1 to 3 do
for b:=1 to 9 do
if ab then
for c:=1 to 9 do
if (ac)and(bc) then
for o:=1 to 9 do
if (ao)and(bo)and(co) then
for p:=1 to 9 do
if (ap)and(bp)and(cp)and(op) then
for q:=1 to 9 do
if (aq)and(bq)and(cq)and(oq)and(pq) then
for i:=1 to 9 do
if (ai)and(bi)and(ci)and(oi)and(pi)and(qi) then
for j:=1 to 9 do
if (aj)and(bj)and(cj)and(oj)and(pj)and(qj)and(ij) then
for k:=1 to 9 do
if (ak)and(bk)and(ck)and(ok)and(pk)and(qk)and(ik)and(jk) then
if (2*(a*100+b*10+c)=(o*100+p*10+q))and(3*(a*100+b*10+c)=(i*100+j*10+k)) then
begin
write(a*100+b*10+c,' ');
write(o*100+p*10+q,' ');
writeln(i*100+j*10+k);
end;
end. -
-12018-01-23 15:07:51@
此题运用一个array[10]来判断每个数是否已经出现。array[i] = 0 未出现 否则已出现 continue至下一个循环
```cpp
#include <stdio.h>
int judge(int *array,int i);
int main(int argc, const char * argv[]) {
for (int i = 123; i < 329; i++) {
int array[10] = {0};
if (judge(array, i) && !array[0])
printf("%d %d %d\n",i,i*2,i*3);
}
return 0;
}int judge(int *array,int i)
{
int twice = i*2, threetimes = i*3;
for (int j = 0; j < 3; j++) {
if (!array[i%10]) array[i%10] = 1;
else return 0;
if (!array[twice%10]) array[twice%10] = 1;
else return 0;
if (!array[threetimes%10]) array[threetimes%10] = 1;
else return 0;
i /= 10;twice /= 10;threetimes /= 10;
}
return 1;
}
``` -
-12017-12-27 00:18:29@
简单AC
```cpp
#include<iostream>
using namespace std;int zf(int x,int b,int c)
{
int a[10]={0};
for (int i=1;i<=3;++i)
{
a[x%10]=1;
a[b%10]=1;
a[c%10]=1;
x/=10;
b/=10;
c/=10;
}
if (a[1]==1&&a[2]==1&&a[3]==1&&a[4]==1&&a[5]==1&&a[6]==1&&a[7]==1&&a[8]==1&&a[9]==1)
return 1;
return 0;
}
int main()
{
int n;
for (int i=100;i<=999;++i)
if (zf(i,i*2,i*3))
cout<<i<<" "<<i*2<<" "<<i*3<<endl;
return 0;
} -
-12017-11-25 22:01:59@
//巧妙打表。。。 //关了sync以后居然又续了1ms #include<iostream> using namespace std; int main() { cin.sync_with_stdio(false), cout.sync_with_stdio(false); cout << 192 << ' ' << 384 << ' ' << 576 << endl; cout << 219 << ' ' << 438 << ' ' << 657 << endl; cout << 273 << ' ' << 546 << ' ' << 819 << endl; cout << 327 << ' ' << 654 << ' ' << 981 << endl; return 0; }
-
-12017-10-26 00:15:54@
for a in range(100,333): s=str(a)+str(a*2)+str(a*3) flag=True for j in range(1,10): if s.find(str(j))==-1: flag=False if flag==True: print a,a*2,a*3
-
-12017-10-24 17:33:21@
golang 走起 package main import ( "fmt" ) var list map[int]int func is_ok(n int)bool{ list = map[int]int{1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9} for i:=1;i<=3;i++{ //百位 if v,e:= list[n*i/100];e{ delete(list,v) }else{ return false } //十位 if v,e:= list[n*i/10%10];e{ delete(list,v) }else{ return false } //个位 if v,e:= list[n*i%10];e{ delete(list,v) }else{ return false } } return true } func main() { for i:=123;i<=333 ;i++ { if is_ok(i){ fmt.Println(i,i*2,i*3) } } }
-
-12017-10-02 20:05:00@
跳出题目的思维
python3
lst = list(range(123,988))
strs = ""
for i in lst:
if i *2 in lst and i*3 in lst:
strs= str(i)+str(2*i)+str(3*i)
if "1" in strs and "2" in strs and"3" in strs and"4" in strs and"5" in strs and"6" in strs and"7" in strs and"8" in strs and"9" in strs:
print('{} {} {}'.format(i,i*2,3*i))
-
-12017-09-26 23:03:09@
So easy!!!
```cpp
#include<cstdio>
#include<cstring>
char s[10];
bool b[10];
bool pd(int x)
{
sprintf(s,"%d%d%d",x,x*2,x*3);
memset(b,0,sizeof(b));
for(int i=0;s[i];i++)
{
if(s[i]=='0')return false;
if(b[s[i]-'0'])return false;
b[s[i]-'0']=true;
}
return true;
}
int main()
{
for(int i=123;i*3<=999;i++)
if(pd(i))
printf("%d %d %d\n",i,i*2,i*3);
return 0;
} -
-12017-09-20 10:54:47@
简单枚举
```cpp
#include <map>
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
map<int,int> vis;
int main(){
for ( int i=123; i<=333; i++ ){
long long w=i*1000000+i*2*1000+i*3;
bool chk=0;
vis.clear();
while( w ){
int p=w%10;
if( vis.count(p) || p==0 ) {
chk=1;
break;
}
vis[p]=1;
w/=10;
}
if( !chk ) printf("%d %d %d\n", i, i*2, i*3);
}
return 0;
}