码迷,mamicode.com
首页 > 其他好文 > 详细

打印输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。

时间:2015-09-19 19:50:32      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:打印输入数字n   按顺序输出从1最大的n位10进制数。   

注意是否溢出

//字符串
/*#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int add(char str[],int len)
{
	int is_overflow = 0;
	int is_add = 0;
	int i = 0;
	for (i = len - 1; i >= 0; i--)
	{
		if (i == len - 1)
		{
			str[i]++;
			if((len==1)&&(str[0]== 10))
			{
				is_overflow = 1;
				break;
			}
	    	else	if (str[i] == 10)
			{
				str[i] = 0;
				is_add = 1;
			}
		}
		else if (i == 0)
		{
			if (str[i] + is_add == 10)
			{
				is_overflow = 1;
				break;
			}
			else
				str[i]+=is_add;
		}
		else
		{
			if (str[i] + is_add == 10)
			{
				str[i] = 0;
				is_add = 1;
			}
			else
			{
				str[i] += is_add;
				break;
			}
		} 
		
	}
	return is_overflow;

}
void print(char str[], int len)
{
	int i = 0;
	int flag = 1;
	for (i = 0; i < len; ++i)
	{
		if (flag&&(str[i] == 0))
		{
			continue;
		}
		else
			flag = 0;
		if (flag == 0)
			printf("%d", str[i]);
	}
	printf("\n");
}
int main()
{
	char arr[1];
	int len = sizeof(arr) / sizeof(arr[0]);
	memset(arr, 0, len);
	while (!add(arr, len))
	{
		print(arr, len);
	}
	system("pause");
	return 0;
}
*/
//递归
/*#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void print(char str[], int len)
{
	int i = 0;
	int flag = 1;
	for (i = 0; i < len; ++i)
	{
		if (flag&&(str[i] == 0))
		{
			continue;
		}
		else
			flag = 0;
		if (flag == 0)
			printf("%d", str[i]);
	}
	printf("\n");
}
void  add(char  str[],int  len,int  index)
{
	  int  i=0;
     if(index==len)  
    {  
        print(str,len);  
        return;  
    }  
    for(i=0; i<10; i++)  
    {  
        str[index]=i;  
        add(str, len, index+1);   
    }  
}
int main()
{
	char arr[2];
	int len = sizeof(arr) / sizeof(arr[0]);
	memset(arr, 0, len);
	add(arr,len,0);
	//system("pause");
	return 0;
}*/


本文出自 “小止” 博客,请务必保留此出处http://10541556.blog.51cto.com/10531556/1696312

打印输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。

标签:打印输入数字n   按顺序输出从1最大的n位10进制数。   

原文地址:http://10541556.blog.51cto.com/10531556/1696312

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!