今天刷題時,遇到了一道題,我覺得還挺有意思的,自己實現了一下,看了下大佬們的答案,實現如下。
首先先來看一下什麼是幸運數:我們一般用的數是十進位制,但是機器只識別二進位制,當乙個整數的十進位制數的每一位,加起來等於它的二進位制的每一位加起來的和。舉個例子吧,123的二進位制表示為1111011,所以二進位制每一位之和是1+1+1+1+0+1+1=6;123的十進位制每一位之和是1+2+3=6,所以123是乙個幸運數。
我們需要輸入乙個數n,計算小於等於n的幸運數的個數。首先,
1.先計算整數的二進位制和十進位制的每一位之和; 2.
然後比較是否相等,相等則是幸運數。
3.找出小於等於n的所有幸運數。
最後是實現**:
#include using namespace std;
int getsum(int n, int m)//獲取二進位制或者十進位制的每一位之和
return sum;
}int main()
cout<
尋找幸運數
4和7是幸運數字,由它們所組成的數也是幸運數字。例如 44,47,474,7447等等。這一系列幸運數由小到大構成了幸運數列。現在,需要設計乙個演算法找出第n個幸運數是多少。我們可以將幸運數列分組 4,7 44,47,74,77 444,447,474,477,744,747,774,777 可以看...
尋找幸運數
小綠在紙上寫下自己的號碼,例如 12345,她未來愛人的號碼長度與她的長度相同。第一位數字是介於0到9之間的任乙個,第二個數字是小綠寫下的號碼的第二位和剛剛寫下的第一位數字和的一半。假設小綠寫下第一位是9,算術平均值等於 2 9 2 5.5。她可以根據自己的意願向上或向下取整。她選擇數字5,將結果數...
京東 幸運數
小明同學學習了不同的進製之後,拿起了一些數字做起了遊戲。小明同學知道,在日常生活中我們最常用的是十進位制數,而在計算機中,二進位制數也很常用。現在對於乙個數字x,小明同學定義出了兩個函式f x 和g x f x 表示把x這個數用十進位制寫出後各個數字上的數字之和。如f 123 1 2 3 6。g x...