【C++题解】1722 - 输出两位的巧数

世界杯梅西点球

问题:1722 - 输出两位的巧数 类型:简单循环 题目描述: 巧数指的是这样一种特殊的数,该数的各个位数字之和加上各个位数字之积等于本身的……

问题:1722 - 输出两位的巧数

类型:简单循环

题目描述:

巧数指的是这样一种特殊的数,该数的各个位数字之和加上各个位数字之积等于本身的自然数。

比如整数 19 ,就是一个巧数,因为(1+9)+(1×9)=10+9=19。

请编程输出所有 2 位的巧数。

输入:

无。

输出:

由小到大输出所有的 2 位巧数,每行 1 个。

完整代码如下:

cpp

复制代码

#include

using namespace std;

int main(){

// 一、分析问题

// 已知:所有 2 位的数。

// 未知:找出其中的巧数。

// 关系:巧数指的是这样一种特殊的数,该数的各个位数字之和加上各个位数字之积等于本身的自然数。

// 二、数据定义

int g, s, t; // g 代表个位数,s 代表十位数,t 用于存储和与积的结果

// 三、数据输入

// (此部分在本程序中未直接体现,因为是通过循环生成两位数进行处理)

// 四、数据计算

for(int i=10; i<=99; i++){ // 循环遍历所有两位数

g = i % 10; // 提取个位数

s = i / 10; // 提取十位数(整除)

t = (s + g) + (s * g); // 计算各位数字之和加上各位数字之积

// 五、输出结果

if(i == t) // 判断当前数是否为巧数

cout << i << endl; // 打印巧数

}

return 0; // 程序正常结束

}