1 条题解
-
0
思路分析
1. 任务拆解:
- 读取整数n
- 找出1到n-1中所有没有生成元的数字(寂寞数字)
- 按升序输出这些数字
2. 关键点分析:
- 生成元定义:如果j + j的各位数字之和 = i,则j是i的生成元
- 寂寞数字:没有任何j能生成它
- 对于每个i,检查所有可能的j(j < i)是否能生成i
- 如果没有任何j能生成i,则i是寂寞数字
3. 步骤规划:
- 读取n的值
- 遍历1到n-1的每个数字i:
- 遍历1到i-1的每个可能的生成元j
- 计算j + j的各位数字之和
- 如果等于i,说明i有生成元,跳过
- 如果遍历完所有j都没有生成元,输出i
4. 代码对应:
cin>>n;→ 读取整数nfor(int i=1;i<n;i++)→ 遍历1到n-1的每个数字ifor(int j=1;j<=i;j++)→ 遍历可能的生成元jif(j==i) cout<<i<<endl;→ 如果所有j都检查完且没找到生成元,输出iint t=j,jj=j;→ 计算j + j的各位数字之和while(jj) t+=jj%10; jj/=10;→ 计算各位数字之和if(t==i) break;→ 如果j能生成i,跳出内层循环
- 1
信息
- ID
- 875
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 34
- 已通过
- 16
- 上传者