# Brute Force# Math# Simulation

e914 - pB. 年紀計算

🔗 前往 ZeroJudge 原題

題目描述

題目要求找出所有滿足條件的小美現在的年齡。條件如下:小美的媽媽的年齡是小美年齡的十位數和個位數交換,且 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";
	}
}

Discussion