8 条题解
-
2
最简单的思路当然是四重循环搞定,但仔细一想,最后一层循环是可以省略的,最后一个数必须加前面三个数为10,那么最后一个数就是10-a-b-c.
#include <iostream> using namespace std; int main() { int a, b, c, d; for (a = 1; a <= 9; a++) for (b = 0; b <= 9; b++) for (c = 0; c <= 9; c++) { d = 10 - a - b - c; if ((d >= 0) && (d <= 9)) cout << a << b << c << d << '\n'; } return 0; }
-
1
Look!
#include<bits/stdc++.h> using namespace std; int main(){ for(int i=1000;i<=9999;i++) if(i/1000+i/100%10+i/10%10+i%10==10) cout<<i<<endl; return 0; }
-
-1
数字和为十,便可以变成3重循环,时间复杂度直线降低(<0.9ms)
上代码!
请点赞再搬走哦~~~~😄 thank!
#include <bits/stdc++.h> using namespace std; int main() { for (int i = 1; i <= 9; i++) { for (int j = 0; j <= 10 - i; j++) { for (int k = 0; k <= 10 - i - j; k++) { cout << i << j << k << 10 - i - j - k << endl; } } } }
- 1
信息
- ID
- 859
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 1
- 标签
- 递交数
- 97
- 已通过
- 70
- 上传者