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

注意是否溢出

//字符串
/*#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;
}*/
时间: 2024-10-12 04:31:55

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

[转]as3 算法实例【输出1 到最大的N 位数 题目:输入数字n,按顺序输出从1 最大的n 位10 进制数。比如输入3,则输出1、2、3 一直到最大的3 位数即999。】

思路:如果我们在数字前面补0的话,就会发现n位所有10进制数其实就是n个从0到9的全排列.也就是说,我们把数字的每一位都从0到9排列一遍,就得到了所有的10进制数. 1 /** 2 *ch 存放数字 3 *n n位数 4 *index 计数值 5 **/ 6 private function num(ch:Array,n:int,index:int):void 7 { 8 if(index==n) 9 { 10 trace(ch); 11 return; 12 } 13 for(var i:in

从文件读入16进制数转化为10进制数再输出到文件中

sSN LMDscandata 1 1 B98C27 0 0 85C0 85C3 F55D73C5 F55DCC81 0 0 7 0 0 1388 168 0 1 DIST1 3F800000 00000000 DBBA0 1388 B5 136C 1373 136B 1389 1398 1356 136D 1386 137B 139C 13C4 13F7 1531 174D 1751 1755 1765 176C 1777 177B 1784 1791 1796 17A8 17C0 17C6

C语言-对字符串二维数组各个元素进行比较-十进制数转化为其他进制数-进行规则矩阵的输出-190225

//编写一个函数:从传入的num个字符中找到最长的一个字符,并通过max传回该串地址. //重点:切记这里a[0]就是一个地址. 1 #include<conio.h> 2 #include<stdio.h> 3 #include<string.h> 4 #include<stdlib.h> 5 6 char *fun(char (*a)[81], int num, char *max) 7 { 8 max = a[0];//切记这里a[0]就是一个地址.

汇编一点点提高3——键盘输入8位二进制数,存入NUM单元,并在屏幕上显示对应的16进制数

此程序要注意一下几点: 1.dos1号功能--带回显的键盘输入,自动存入al 2.dos7号功能--不带回显的键盘输入,自动存入al,若要在屏幕中显示要调用DOS2号功能 3.将输入的多个二进制数转换为ASCII码 input:  mov ah,1  int 21h  add bl,bl  cmp al,'1'  jnz P1  inc bl  P1: dec ch  jnz input 4.换行子程序: newline: mov ah,2 mov dl,13 int 21h mov ah,2

支持windows linux下将指定内存段转为16进制与ascii码的日志输出类

来源:http://blog.csdn.net/lezhiyong 1. 简介 将指定内存段转为16进制与asci码的输出到日志文件的类. 2. 功能介绍 1) 支持window与linus双系统. 2) 可指定输出目录. 3) 日志能输出的时间精确到毫秒,日志能输出线程号. 4) 提供字符串输出. 5) 提供指定内存转换为16进制输出. 6) 提供指定内存转换为16进制和ascii码同时输出. 7) 可调整16进制输出间距. 3. 原理和算法 1) 模块是基于C++语言编写: 2) 通过条件定

10进制转二进制字符串输出

import java.util.Scanner; /** * Created by longforus on 9:10 PM 5/9/2016 . * IDEA-Test . * 输入10进制 输出二进制字符串 先计算该数包含最大的2次方结果 每减去一个该数 该位二进制 * 就记1 不够减就记0 a减完以后补全0 */ public class Chapter4_37 { public static void main (String[] args) { System.out.println

Project Ruler 算法练习之 10 进制 转 2进制 以及数字对称

问题描述: The decimal number, 585 = 10010010012 (binary), is palindromic in both bases. Find the sum of all numbers, less than one million, which are palindromic in base 10 and base 2. (Please note that the palindromic number, in either base, may not inc

【POJ 1200】Crazy Search(将字符映射为数字,将NC进制hash成10进制)

题目链接 题目链接 http://poj.org/problem?id=1200 题意 原字符串有NC个不同字母,统计原字符串长度为N的子字符串个数 解题思路 将字符按ASCII码映射成数字. 将n个字符,即n位NC进制拼起来. 将拼起来的n位NC进制转化为10进制. 将10进制映射入hash表,每次映射判断是否已经存在. 若不存在,则ans++:否则将hash设置为存在 如何将子串(n位NC进制)映射为10进制 a = 0 b = 1 c = 2 则 cbaa = 2 * 3^3 + 1 *

输入一个十进制数N,将它转换成R进制数输出(运用递归实现)

#include<stdio.h> int cnt=0;                             //用来记录每个进制存放的位置 char num[20];   //用来存放每个进制的数 void fun(int a,int b) { if(a==0)   //递归的终止条件 return; fun(a/b,b);                       //顺序递归 num[cnt++] = a%b;                  //逆序递归 } int main(