考虑一下我们{0,2,4,6,8}只有数字.现在我们必须找到一系列的N个数字.
Series : 0,2,4,6,8,20,22,24,26,28,40.....
int start=0;
while(found!=n){
if(start is not odd)found++;
start+=2;
}
Run Code Online (Sandbox Code Playgroud)
我们怎么能有效地做到这一点?
For Ex N=6 Ans=20
Run Code Online (Sandbox Code Playgroud)
你试图从5位数组成一个数字,所以这基本上是一个基数为5的数字,只是用一组古怪的数字 - {0,2,4,6,8}而不是{0,1,2, 3,4}.请注意,所需数字集中的每个数字是基数为5的数字集的相应索引中的数字的两倍.因此,长话短说,您可以将N转换为基数5,然后将结果加倍.例如,在Java(或C/C++,有趣的是):
int createNumber(int n) {
int result = 0;
while (n > 0) {
result *= 10;
result += (n % 5);
n /= 5;
}
return result * 2;
}
Run Code Online (Sandbox Code Playgroud)