題目:X游戲
題目描述
我們稱一個數 X 為好數, 如果它的每位數字逐個地被旋轉 180 度后,我們仍可以得到一個有效的,且和 X 不同的數。要求每位數字都要被旋轉。
如果一個數的每位數字被旋轉以后仍然還是一個數字,?則這個數是有效的。0, 1, 和 8 被旋轉后仍然是它們自己;2 和 5 可以互相旋轉成對方;6 和 9 同理,除了這些以外其他的數字旋轉以后都不再是有效的數字。
現在我們有一個正整數?N, 計算從?1?到?N?中有多少個數?X 是好數?
輸入描述:
輸入正整數N
輸出描述:
輸出1到N中好數個數
示例1
輸入
10
輸出
4
說明
在[1, 10]中有四個好數: 2, 5, 6, 9。
注意 1 和 10 不是好數, 因為他們在旋轉之后不變。
代碼:
#include <iostream>
using namespace std;void solution(int nums)
{int n = 0, count = 0, m;bool flag;for (int i = 0; i <= nums; ++i){m = i;flag = false;while (m){n = m % 10;if (n == 3 || n == 4 || n == 7)break;if (n == 6 || n == 9 || n == 2 || n == 5)flag = true;m /= 10;}if (m == 0 && flag == true){++count;// cout << i << endl;}}cout << count << endl;
}int main()
{int num;cin >> num;solution(num);return 0;
}
?