【C语言】打印1到最大的n位数

原创 2015年07月09日 14:32:49
//打印1到最大的n位数
//输入数字n,按顺序打印出从1到最大的n位十进制数。比如:输入3,则打印出1、2一直到最大的3位数999
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
int num[10];
int add(int n)
{
	int isoverflow = 0;
	int carry = 0;
	int i;
	for (i = 9; i >= 10 - n; i--)
	{
		num[i] += carry;
		if (i == 9)
			num[i]++;

		if (num[i] >= 10)
		{
			if (i == 10 - n)
			{
				isoverflow = 1;
			}
			else
			{
				num[i] -= 10;
				carry = 1;
			}
		}
		else
		{
			break;
		}
	}
	return isoverflow;
}
int main(void){
	int n, i;
	while (scanf_s("%d", &n) != EOF && n >= 1 && n <= 5)
	{
		memset(&num, 0, sizeof(int)* 10);
		while (!add(n))
		{
			int flag = 0;
			for (i = 10 - n; i < 10; i++)
			{
				if (num[i] != 0 || flag)   //如果是前面的零,则不输出;如果是后面的零,则输出
				{
					flag = 1;
					printf("%d", num[i]);
				}
			}
			printf("  ");
		}
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

[剑指offer] 打印1到最大的n位数(JAVA实现)

最容易想到求出最大的n位数,然后从1开始循环打印,但是这样容易造成溢出,应考虑大数问题,所以,正确的解法如下。 解法1. 在字符串上模拟数字加法 解法2. 把问题转换成数字排列 代码: ...
  • u014730658
  • u014730658
  • 2016年08月20日 15:35
  • 764

12 打印1到最大的N位数(递归和非递归解法)

打印1到最大的N位数(递归和非递归解法)
  • u012150590
  • u012150590
  • 2016年06月01日 16:17
  • 788

打印1到最大的n位数

解析:打印1到最大的n位数,首先因为n的大小没有确定,所以就得分两种情况考虑,假如n在整数范围内,当n小于INT_MAX时,直接用处理整数的方式来计算,否则就得将n转化成字符串来处理,具体整数处理,请...
  • zhou753099943
  • zhou753099943
  • 2016年06月29日 01:49
  • 1277

剑指Offer:面试题12——打印1到最大的n位数(java实现)

问题描述: 输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的3位数即999. 思路1:最简单的想法就是先找出最大的n位数,然后循环打印即可。public...
  • lilianforever
  • lilianforever
  • 2016年07月06日 11:07
  • 2516

打印1到最大的n位数

题目: 输入数字n,按顺序打印出1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 方法1 //利用case语句使字符++ char CharPlus(cha...
  • zhaojinjia
  • zhaojinjia
  • 2013年04月09日 17:06
  • 5734

【剑指offer】打印1到最大的n位数

剑指offer第12题,九度OJ测试通过。 题目描述: 给定一个数字N,打印从1到最大的N位数。 输入: 每个输入文件仅包含一组测试样例。 对于每个测试案例,输入一个数字N(1...
  • mmc_maodun
  • mmc_maodun
  • 2014年05月12日 23:59
  • 3941

面试题12:打印1到最大的n位数-大数问题-递归实现多层循环

#include #include #include #include #include #include #include using namespace std; void p...
  • damotiansheng
  • damotiansheng
  • 2016年05月26日 08:47
  • 551

打印1到最大的n位数

题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3:,则打印出1,2,3一直到最大的3位数即999#include using namespace std; bool Incre...
  • szl_lxy
  • szl_lxy
  • 2015年08月24日 20:14
  • 157

打印1到最大的n位数

题目:输入一个数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,输出1,2,3。。。。。999。 常规的想法就是求出最大的那个数,然后遍历输出。但是当n非常大的时候就无法这么做了,可以考虑数...
  • a1b2c3d4123456
  • a1b2c3d4123456
  • 2016年06月06日 10:28
  • 201

打印1到最大的n位数

题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1,2,3一直到最大的3位数即999. 第一眼看到这道题是不是觉得很简单?如果你真的觉得很简单,那就掉进这道题的陷阱了。于是...
  • qq_33724710
  • qq_33724710
  • 2016年05月04日 10:07
  • 322
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C语言】打印1到最大的n位数
举报原因:
原因补充:

(最多只允许输入30个字)