e914 - pB. 年紀計算
題目描述
題目要求找出所有滿足條件的小美現在的年齡。條件如下:小美的媽媽的年齡是小美年齡的十位數和個位數交換,且 n 年後,媽媽的年齡是小美的兩倍。媽媽的年齡必須在 18 到 99 歲之間。如果找不到滿足條件的年齡,則輸出 "no answer"。
解題思路
這題採用暴力法。由於小美的年齡範圍是 18 到 99 歲,因此可以遍歷所有可能的年齡。對於每個可能的年齡,計算媽媽的年齡,然後檢查 n 年後媽媽的年齡是否是小美的兩倍。如果滿足條件,則輸出小美的年齡。如果遍歷完所有可能的年齡後仍然沒有找到滿足條件的年齡,則輸出 "no answer"。
複雜度分析
- 時間複雜度: O(82) (因為迴圈從 18 跑到 99)
- 空間複雜度: O(1)
程式碼
#include <iostream>
using namespace std;
int main(){
int n;
while(cin >> n){
bool ans=0;
for(int i=18;i<=99;++i){
int m=(i%10)*10+i/10;
if(i+n<=99&&(m+n)*2==i+n){
ans=1;
cout << m << " ";
}
}
if(ans==0){
cout << "no answer";
}
cout << "\n";
}
}