解题思路:
用递归,思路就像线性筛素数
注意事项:
参考代码:
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <stdio.h> #define N 100000 using namespace std; bool vis[N + 2]; int getDSum(int n) { int bak = n; int sum = 0; while (n) { sum += n % 10; n /= 10; } return sum += bak; } void d(int cur, const int max) { if (cur > max) return; else { int n = getDSum(cur); if (!vis[n]) { vis[n] = true; d(n, max); } return; } } int main(int argc, char** argv) { int n = 0, maxN = 0; cin >> n; for (int i = 1; i < n; i++) d(i, n); for (int i = 1; i < n; i++) if (!vis[i]) cout << i << endl; return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题11.12 (C语言代码)浏览:740 |
母牛的故事 (C语言代码)浏览:452 |
小明A+B (C语言代码)浏览:1268 |
计算质因子 (C++代码)浏览:1685 |
WU-复数求和 (C++代码)浏览:2029 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:637 |
【亲和数】 (C语言代码)浏览:609 |
模拟计算器 (C++代码)浏览:823 |
数列排序 (C语言代码)浏览:619 |
求圆的面积 (C语言代码)浏览:688 |