枚举法(穷举法、暴力法) 把每一种可能都枚举 1输出aabb的4位完全平方数 输出所有形如:abb的4位完全平方数(前两位相同,后两位相同) #include<bits/stdc++.h> using namespace std; int main() { int x; for(x sqrt(1000);x++) { int n; n=x*x∥枚举x的平方 if(n>=10000)break;∥如果平方不是4位数,则结束 inta=n/1000:/千位 intb=n/100%10;/百位 intc=n/10%10:/∥什位 intd=n%10:/∥个位 if(a=b&&c=d) { cout <<n <endl; } return 0; 2百钱买百鸡 公鸡5元一只,母鸡3元一只,小鸡1元三只;一百元买一百只鸡,且公鸡,母鸡,小鸡 都要有有几种买法? #include<bits/stdc++.h> using namespace std; int main() { int i,j,k; for(i=1;i<=20:i+)枚举公鸡
枚举法(穷举法、暴力法) 把每一种可能都枚举 1 输出 aabb 的 4 位完全平方数 输出所有形如:aabb 的 4 位完全平方数(前两位相同,后两位相同) #include<bits/stdc++.h> using namespace std; int main() { int x; for(x = sqrt(1000); ; x++) { int n; n = x*x;// 枚举 x 的平方 if( n >= 10000 ) break; //如果平方不是 4 位数,则结束 int a = n /1000;//千位 int b = n/100 %10 ;//百位 int c = n/10 % 10;//十位 int d = n %10;//个位 if(a == b &&c == d ) { cout << n << endl; } } return 0; } 2 百钱买百鸡. 公鸡 5 元一只,母鸡 3 元一只,小鸡 1 元三只;一百元买一百只鸡,且公鸡,母鸡,小鸡 都要有.有几种买法? #include<bits/stdc++.h> using namespace std; int main() { int i,j,k; for( i = 1; i <= 20; i ++) //枚举公鸡 {
for(j=1;j<=33;j+)∥枚举母鸡 fo(k=3:k<=99:k=k+3)/枚举小鸡 { ifi+j+k=100&&5*i+3*j+1.0/3*k=100) cout<<i<""<<j<<""<<k<<endl; } return 0; 3蓝桥杯竞赛题:ABCDE*?=EDCBA,求这ABCDE ABCDE*?=EDCBA而且这几个数字不同,把ABCDE所代表的数字写出来(21978) I∥蓝桥杯竞赛题:ABCDE*?=EDCBA,求这ABCDE,而且这几个数字不同,把ABCDE 所代表的数字写出来(21978) #include<bits/stdc++.h> using namespace std; int main() { int n; for(n=10234,n<=98765;n+) { inta=n/10000;∥万位 intb=n/1000%10,/千位 intc=n/100%10;∥百位 intd=n/10%10:/∥什位 inte=n%10:∥个位 for(intx=2,x<=9;x+)∥枚举乘法的那个一位数 ifn*x=e*10000+d*1000+c*100+b*10+a &&al=b &&a !=c&&a l=d&&a l=e &&b!=c&&b!=d &&b!=e &&c!=d &&c!=e &&d!=e
for( j = 1; j <= 33 ; j ++) //枚举母鸡 { for( k = 3; k <= 99; k = k +3 ) //枚举小鸡 { if(i+j+k == 100 && 5*i+3*j+1.0/3*k == 100) { cout << i<<"," <<j <<","<< k <<endl; } } } } return 0; } 3 蓝桥杯竞赛题:ABCDE * ? = EDCBA , 求这 ABCDE ABCDE * ? = EDCBA 而且这几个数字不同,把 ABCDE 所代表的数字写出来( 21978) //蓝桥杯竞赛题:ABCDE * ? = EDCBA , 求这 ABCDE,而且这几个数字不同,把 ABCDE 所代表的数字写出来( 21978) #include<bits/stdc++.h> using namespace std; int main() { int n; for(n = 10234; n <= 98765 ; n++) { int a = n/ 10000; //万位 int b = n /1000%10;//千位 int c = n/100 %10 ;//百位 int d = n/10 % 10;//十位 int e = n %10;//个位 for(int x = 2; x <= 9 ; x ++ ) //枚举乘法的那个一位数 { if( n * x == e*10000+d*1000+c*100+b*10+a && a != b && a != c &&a != d &&a != e && b != c && b != d && b!= e && c != d && c != e && d!= e
{ cout<n<"*"<<x<<"="<<e*10000+d*1000+c*100+d*10+e<endl; } } return 0; }I/蓝桥杯竞赛题:ABCDE*?=EDCBA,求这ABCDE,而且这几个数字不同,把ABCDE 所代表的数字写出来(21978) #include<bits/stdc++.h> using namespace std; int main() { int n; int a,b,c,d,e,x; for(a=1:a<=9:a++) { for(b=0;b<=9;b++) { for(c=0;c<=9;c+) for(d=0;d<=9;d+) { for(e=1:e<=9e++) { for(x=1;x<=9;x+) if( (10000*a+1000*b+100*c+10*d+e)*x 10000*e+1000*d+100*c+10*b+a &&(al=b&&al=c&&a!=d&&a!=e) &&b!=c&&b!=d &&b!=e &&cl=d &&c!=e &&d!=e) { cout <a<<bK<C<<d<e<<"*"<<X<"=
) { cout <<n <<"*" <<x << "=" << e*10000+d*1000+c*100+d*10+e << endl; } } } return 0; } //蓝桥杯竞赛题:ABCDE * ? = EDCBA , 求这 ABCDE,而且这几个数字不同,把 ABCDE 所代表的数字写出来( 21978) #include<bits/stdc++.h> using namespace std; int main() { int n; int a,b,c,d,e,x; for( a = 1; a <= 9 ; a ++) { for( b = 0; b <= 9 ; b ++) { for(c = 0 ; c <= 9 ; c++) { for(d = 0 ; d <= 9 ;d ++) { for( e = 1; e <= 9 ;e ++) { for( x = 1; x <= 9 ; x ++) { if( (10000*a+1000*b+100*c+10*d+e) * x == 10000*e+1000*d+100*c+10*b+a && (a!= b && a!= c && a != d && a != e) && b != c && b!= d && b != e && c!=d &&c != e && d != e) { cout <<a<<b<<c<<d <<e <<"*" <<x <<"=
<<e<<d<<c<<b<<a<<endl: } } return 0; 4计算年龄 三个神秘蒙面人来访F博士。博士询问他们年龄时,他们说:我们中年龄最小的不超过19 岁。我们3人年龄总和为70岁。且我们三人年龄的乘积是所有可能情况中最大的。 请帮助F博士计算他们的年龄,从小到大排列,用逗号分开。 参考答案:19,25,26 #include <bits/stdc++.h> using namespace std; int main() { int x,y,z int max_x,max_y,max_z; int max =0; for(x=1;x<=19;x+) { for(y=1;y<70;y+) for(z=1;z<70;z+) { if(x+y+z==70 &&x<y&&y<z) if(max<x*y米Z) { max x*y*Z; maxX=x;//记录下来,随时更新 max_yy; max_zZ;
<<e<<d<<c<<b<<a<<endl; } } } } } } } return 0; } 4 计算年龄 三个神秘蒙面人来访 F 博士。博士询问他们年龄时,他们说:我们中年龄最小的不超过 19 岁。我们 3 人年龄总和为 70 岁。且我们三人年龄的乘积是所有可能情况中最大的。 请帮助 F 博士计算他们的年龄,从小到大排列,用逗号分开。 参考答案:19,25,26 #include <bits/stdc++.h> using namespace std; int main() { int x,y,z; int max_x,max_y,max_z; int max = 0; for( x = 1; x <= 19 ; x ++) { for( y = 1 ; y < 70 ; y ++) { for( z = 1; z < 70 ; z ++) { if( x + y + z == 70 && x < y && y < z ) { if( max < x * y * z) { max = x*y*z; max_x = x; //记录下来,随时更新 max_y = y; max_z = z; }
cout〈<max_x<endl; cout <max_y<<endl; cout <max z <<endl; return 0; }
} } } } cout << max_x <<endl; cout << max_y<<endl; cout << max_z <<endl; return 0; }