递减打印最大的N位数到1 (2015年 JXNU_ACS 算法组暑假第一次周赛)

递减打印最大的N位数到1

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 21   Accepted Submission(s) : 4

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

给定一个数字N,M,递减打印最大的N位数到1的前M个数,例如给定2 5,则打印99 98 97 96 95。

Input

输入包含多组测试样例。

对于每个测试案例,输入一个数字n,m(n<=10^3,1<=m<=min((10^n)-1,10^3))。

Output

对应每个测试案例,依次打印从最大的N位数到1的前m位。

Sample Input

1 9

Sample Output

9
8
7
6
5
4
3
2
1

Author

吴迎



Statistic | Submit | Back

闲来无聊做的其它学校出的题、、

这道题让我做的筋疲力尽啊。。由于在航电上面找不到题目,就不写题号了

#include <stdio.h>
#include <math.h>
int main()
{
	int n,m,temp,x;
	while(scanf("%d %d",&n,&m)!=EOF)
	{
		int flag=0;
 		if(m<10)
		temp=1;
		else if(m<100)
		temp=2;
		else if(m<1000)
		temp=3;
		else if(m<10000)
		temp=4;
		int t=1;
		while(m--)
		{
			for(int i=0;i<n-temp;i++)
			printf("9");
			x=pow(10,temp)-t;
			if((n-temp))
			{
				for(int i=1;i<temp-(int)log10(x);i++)
				printf("0");
			}
			printf("%d\n",x);
			t++;
		}
	}
	return 0;
}

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

时间: 2024-10-13 04:43:32

递减打印最大的N位数到1 (2015年 JXNU_ACS 算法组暑假第一次周赛)的相关文章

一位数 (2015年 JXNU_ACS 算法组暑假第一次周赛)

一位数 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 17   Accepted Submission(s) : 9 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 对于一个正整数,递归使用如下的规则总是可以使它成为一位数,这个规则是

【C语言】打印1到n位数。

来看一个问题: 打印1到n位数:(例如打印1到3位数,即输出1到999) 第一眼看到这个题的时候感觉好简单.一个for循环不断输出就能够解决问题.但是大家仔细想一下.在语言中数据类型存在最大的上限值.最大的数据结构unsinged long long. 它的最大值为:18446 74407 37095 51615.也就是20位.当我们想要输出1到21位数就会超出类型的最大值(早早就超出了). 所以我们该怎么设计这个程序呢? 这里提供的思路一共有3种. 1.运用数组.数组中的一个数组代表一个位.运

按照长度递减的方式打印 字符串 &quot;BackSpace&quot;

/** * 按照长度递减的方式打印 字符串 "BackSpace" * 打印格式如下: * BackSpace * BackSpac * ackSpace * BackSpa * ackSpac * ckSpace * ..... */ /** * 按照长度递减的方式打印 字符串 "BackSpace" * 打印格式如下: * BackSpace * BackSpac * ackSpace * BackSpa * ackSpac * ckSpace * .....

C Language核心技术之基础程序设计(三)

1 总体说明 运算符概述 算术运算符 自增自减运算符 赋值运算符 关系运算符 逻辑运算符 三目运算符 2 运算符概述 计算机的核心人物就是数据的计算,而在程序语言层次上就是使用各种运算符来完成之前提到的数据类型之间算术,关系,逻辑,位运算符的,它们都有自己的优先级和结合性,优先级和运算符相关,也就是谁先计算,谁后计算,结合性就是在优先级相等的情况下,是从左到右开始计算的. 3 算术运算符 算术运算符是用来进行基本的数学运算,其运算的结果仍然是数值,就是参与运算的最大数据类型.C语言支持常用的五个

C语言的角落——C之很常使用特性(一)

本文搜集整理了一些之前博客中没有提到的,C语言不经常使用的特性,算是对C系列的最后一次补充. 对C语言有兴趣的朋友能够浏览一下,查漏补缺. 变长參数列表 <stdarg.h> 头文件定义了一些宏,当函数參数未知时去获取函数的參数 变量:typedef  va_list 宏: va_start() va_arg() va_end() va_list类型通过stdarg宏定义来訪问一个函数的參数表.參数列表的末尾会用省略号省略 (va_list用来保存va_start,va_end所需信息的一种类

C语言printf格式化输出修饰符详解

转换说明 输出 %a,%A 浮点数.十六进制数和p-计数法(C99) %c 一个字符 %d 有符号十进制数 %e,%E 浮点数,e计数法 %f 浮点数,十进制计数法 %g,%G 根据数值不同自动选择%f或%e,%e格式在指数小于-4或者大于等于精度时使用 %i 有符号十进制整数(与%d相同) %o 无符号八进制整数 %p 指针 %s 字符串 %u 无符号十进制数 %x,%X 使用十六进制数0f的无符号十六进制整数 %% 打印一个百分号 prinf()修饰符 修饰符 意义 标志 五种标志将在后面的

Python第一课

一.基础语法: 1.注释:# print("hello"+"world")  #这是个print 2.数字 整数:不区分long和int 进制:0xa(16进制).0o10(十进制).0b10(二进制) bool,两个值:True.False 浮点数 1.2,2.35,3.1415,-0.12,1.46e9 ==1.46*(10**9) 复数: 1+2j 3.字符串 使用' "单双引号引用的字符的序列 print("hello,world&quo

C语言学习(二)——字符串和格式化输入输出

C语言学习(二)——字符串和格式化输入输出 1.char数组类型和空字符 C没有为字符串定义专门的变量类型,而是把它存储在char数组里.数组的最后一个位置显示字符\0.这个字符就是空字符,C用它来标记字符串的结束,其ASCII码的值为(或者等同于)0.C的字符串存储时通常以这个空字符结束,该字符的存在意味着数组的单元数必须至少比要存储的字符数多1.计算机可以自己处理大多数这些细节问题(例如,scanf( )会添加'\0'使得数组内容成为C字符串). 2.strlen( )函数与sizeof运算

总结N种排序算法及实现

排序算法是一个简单的问题,但在此问题上却有大量的研究!当前的排序算法通常按照如下四个方面进行分类(或是评价): 1.时间复杂度:一个排序算法的理想性能是O(n).一般而言,好的性能O(nlogn),坏的性能O(n2). 2.空间复杂度(内存使用量) 3.稳定性:稳定的排序算法会让原本有相等键值的记录维持原本的相对次序. 4.排序方式:插入.交换.选择.合并等 一.冒泡排序:这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端. 步骤:1.比较相邻的两个元素,如果第一个比第二个大,就