注意是否溢出
//字符串
/*#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。
原文地址:http://10541556.blog.51cto.com/10531556/1696312