九位数的枚举太靠运算量,我直接从基础开始,三位数的循环,分别求出这个三位数的两倍 三倍,第一步把加倍后四位数的值统统筛选掉,第二步,把所有的数拆成一个个的小数字,用if判断排除掉有相同数字的数,最后输出的结果就是题目结果
参考代码:
#include<stdio.h> int main() { int i=100,m,n; int a,b,c,d,e,f,x,y,z; for(i=100;i<1000;i++) { m=2*i; n=3*i; a=i/100; b=i%100/10; c=i%10; d=m/100; e=m%100/10; f=m%10; x=n/100; y=n%100/10; x=n%10; if(m>100&&m<1000&&n>100&&n<1000) { if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=x&&a!=y&&a!=z&&a!=0) { if(b!=c&&b!=d&&b!=e&&b!=f&&b!=x&&b!=y&&b!=z&&b!=0) { if(c!=d&&c!=e&&c!=f&&c!=x&&c!=y&&c!=z&&c!=0) { if(d!=e&&d!=f&&d!=x&&d!=y&&d!=z&&d!=0) { if(e!=f&&e!=x&&e!=y&&e!=z&&e!=0) { if(f!=x&&f!=y&&f!=z&&f!=0) { if(x!=y&&x!=z&&x!=0) { if(y!=z&&y!=0) { printf("%d %d %d\n",i,m,n); } } } } } } } } } } return 0; }
0.0分
3 人评分