以遞增順序打印2^i*5^j

以遞增的順序打印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();
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章