求解幸運數問題

2021-10-10 01:35:50 字數 1225 閱讀 4686

小明同學在學習了不同的進製之後用些數字做起了遊戲。小明同學知道,在日常生活中最常用的是十進位制數,而在計算機中二進位制數也很常用。現在對於乙個數字x

xx.小明同學定義出兩個函式f(x

)f(x)

f(x)

和g (x

)g(x)

g(x)

,f (x

)f(x)

f(x)

表示把r

rr這個數用十進位制寫出後各數字上的數字之和,例如f

(123)=

1+2+

3=

6f(123)=1+2+3=6

f(123)

=1+2

+3=6

; g (x

)g(x)

g(x)

表示把工這個數用二進位制寫出後各數字上的數字之和,例如123的二進位制表示為110111麼g

(123)=

1+1+

1+1+

0+1+

1=

6g(123)=1+1+1+1+0+1+1=6

g(123)

=1+1

+1+1

+0+1

+1=6

.小明同學發現對於一些正整數滿足f(x

)=g(

x)

f(x)=g(x)

f(x)=g

(x),他把這種數稱為幸運數,現在他想知道小於等於n

nn的幸運數有多少個?

輸人描述:每組資料輸人乙個數n(n

≤000000

)n(n≤000000)

n(n≤00

0000

)。輸出描述:每組資料輸出行,小於等於n

nn的幸運數個數。

輸入樣例:

21
樣例輸出:

1
本題的關鍵是將十進位制數n轉換為r進製數,並求各位數之和,設f(n

,r

)f(n,r)

f(n,r)

返回十進位制數n轉換位r進製數後的各位數之和

#include

using

namespace std;

intf

(int n,

int r)

}int

main()

} cout << count<}

幸運數 求解過程

原題目 小明同學學習了不同的進製之後,拿起了一些數字做起了遊戲。小明同學知道,在日常生活中我們最常用的是十進位制數,而在計算機中,二進位制數也很常用。現在對於乙個數字x,小明同學定義出了兩個函式f x 和g x f x 表示把x這個數用十進位制寫出後各個數字上的數字之和。如f 123 1 2 3 6...

尋找幸運數

4和7是幸運數字,由它們所組成的數也是幸運數字。例如 44,47,474,7447等等。這一系列幸運數由小到大構成了幸運數列。現在,需要設計乙個演算法找出第n個幸運數是多少。我們可以將幸運數列分組 4,7 44,47,74,77 444,447,474,477,744,747,774,777 可以看...

尋找幸運數

今天刷題時,遇到了一道題,我覺得還挺有意思的,自己實現了一下,看了下大佬們的答案,實現如下。首先先來看一下什麼是幸運數 我們一般用的數是十進位制,但是機器只識別二進位制,當乙個整數的十進位制數的每一位,加起來等於它的二進位制的每一位加起來的和。舉個例子吧,123的二進位制表示為1111011,所以二...