以遞增的順序打印2^i*5^j這N個數組 所有的 i >= 0 , j >= 0
Print N numbers of form 2^i.5^j in increasing order for all i >= 0 , j >= 0 ?
Example : - 1,2,4,5,8,10,16,20.....
#include <stdio.h>
#include <stdlib.h>
void print(int N)
{
int *arr = new int[N];
arr[0] = 1;
int numi,numj,num;
int i = 0,j = 0,k = 0,count = 1;
while(count<N)//第一個元素爲arr[0] = 1 求出剩餘的N-1個數
{
numi = arr[i]*2;//用numi記錄2的倍數
numj = arr[j]*5;//用numj記錄5的倍數
if (numi<numj)//記錄較小的倍數
{
num = numi;
i++;
}
else
{
num = numj;
j++;
}
if (num > arr[k])//如果較小的倍數大於最大的值 填充數組中下一個元素
{
arr[++k] = num;
count++;
}
}
for(int counter = 0; counter < N; counter++)
{
printf("%d ", arr[counter]);
}
delete [] arr ;
}
void main()
{
print(9);
getchar();
}