前言
简单问题,写的不好,大佬见谅.
如有疏漏,恳请指正,小编垂首.
问题描述:
某君新认识一网友。当问及年龄时,他的网友说:“我的年龄是2位数,我比儿子大27岁,如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄”请你计算:网友的年龄一共有多少种可能情况?
提示:30岁就是其中一种可能哦.
问题解析:
- 暴力破解,
- 30≦age1≦99 03≦age2≦99
- age1/10age2%10 and age1%10age2/10 and age1==age2+27;
- 2位数分别遍历
- 0≦i<10 3≦j<10
- j10+i==i10+j+27
实现代码:
代码如下(示例):
#include<iostream>
using namespace std;
int main() {
int n = 0;
for (int i = 0; i < 10; i++) {
for (int j = 3; j < 10; j++) {
if (j * 10 + i == i * 10 + j + 27){
cout << (j * 10 + i) << "\t";
n++;
}
}
}
cout << endl;
cout << n << endl;
return 0;
}
注意事项
父比子大27岁,显然排除27,28,29,从30起步
测试案例:
总结
暴力求解,但直接遍历判断多,将位数分开遍历显然更优雅.(本质依然暴力)