解题思路:
注意事项:
参考代码:
#include<stdio.h> int main(){ int a,b,c,n,flag=1; scanf("%d",&n); for(a=1;a<10;a++){ for(b=0;b<10;b++){ for(c=0;c<10;c++){ if(2*a+2*b+c==n){ flag=0; printf("%d%d%d%d%d\n",a,b,c,b,a); } } } } for(a=1;a<10;a++){ for(b=0;b<10;b++){ for(c=0;c<10;c++){ if(2*a+2*b+2*c==n){ flag=0; printf("%d%d%d%d%d%d\n",a,b,c,c,b,a); } } } } if(flag)printf("-1"); }
0.0分
12 人评分
我对你的代码做了一些优化 #include<stdio.h> int main() { int a,b,c,flag=1,i,n; scanf("%d",&n); for(i=1;i<=2;i++) for(a=1;a<10;a++) for(b=0;b<10;b++) for(c=0;c<10;c++) if(2*a+2*b+i*c==n) { flag=0; if(i==1) printf("%d%d%d%d%d\n",a,b,c,b,a); else printf("%d%d%d%d%d%d\n",a,b,c,c,b,a); } if(flag) printf("-1\n"); return 0; }
pyuanstyle 2020-02-12 15:03:04 |
厉害
和你一样,暴力美学,哈哈 int main(void) { int n, num = 0; cin>>n; for(int a=1; a<=9; a++) for(int b=0; b<=9; b++) for(int c=0; c<=9; c++) for(int d=0; d<=9; d++) for(int e=0; e<=9; e++) { if(a+b+c+d+e==n && a==e && b==d ) { cout<<a<<b<<c<<d<<e<<endl; num++; } } for(int a=1; a<=9; a++) for(int b=0; b<=9; b++) for(int c=0; c<=9; c++) for(int d=0; d<=9; d++) for(int e=0; e<=9; e++) for(int f=0; f<=9; f++) { if(a+b+c+d+e+f==n && a==f && b==e && c==d) { cout<<a<<b<<c<<d<<e<<f<<endl; num++; } } if(!num) cout<<-1; return 0; }
不是要求数字从小到大排吗
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:553 |
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:619 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:674 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:443 |
简单的a+b (C语言代码)浏览:749 |
【简单计算】 (C语言代码)浏览:641 |
1128题解(返回值为数组的情况)浏览:569 |
C二级辅导-分段函数 (C语言代码)浏览:657 |
敲七 (C语言代码)浏览:2746 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:1105 |