n-1位数[java]

原创 2016年08月31日 12:42:45
描述

已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。

输入
第一行为M,表示测试数据组数。
接下来M行,每行包含一个测试数据。
输出

输出M行,每行为对应行的n-1位数(忽略前缀0)。如果除了最高位外,其余位都为0,则输出0。


这道题主要有以下几个要克服的

1.怎样求的输入的数是几位,这里采用的是输入一个字符串,然后把字符串转为字符数组,可以求的字符数组的长度

2.怎样判断最高位后面的数字是不是0以及要排除不是0的数字后面又是0的情况,这里采用的判断条件有两个,首先也是最基本的是要求的数有几位0,然后定义一个布尔变量,初始化为true,当有非零位时让布尔变量为false

3.这个数中有几个0 ,需要进行计数,当这个数全是0的时候需要输出0

4.因为要输出非0 的数,所以可以在循环中一个一个输出,但为了避免输出0,所以就要当2中的两个条件达成时,就要跳出本次循环,使用continue

5.由于计算的是n-1位数,所以在计算0 的总个数的变量的初始化是1,遍历这个字符串时从1开始就行了


具体代码如下

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		while(m--!=0) {
			String n = sc.next();
			char [] c = n.toCharArray();
			int count = 1;
			boolean flag = true;
			for (int i = 1; i < c.length; i++) {
				if (flag && c[i]=='0') {
					count++;
					continue;
				}
				System.out.print(c[i]);
				flag = false;
			}
			if (count == c.length) {
				System.out.println('0');
			} else {
				System.out.println();
			}
		}
	}
}


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

相关文章推荐

NYOJ 96 n-1位数

n-1位数 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的...

java计算1-n中1出现的次数

public class n_1_300 { // 思路:分别计算“1”在每个位(个位,十位,百位……)上面出现的次数,叠加起来 public static int countNum(int n)...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

面试题12-打印1到最大的n位数

题目: 输入数字n,按顺序打印出从1

hibernate之关于1+N的问题

【Hibernate】之关于1+N的问题 1+N问题,也有人也叫做N+1问题,至今未统一,在这里我会告诉大家我为什么称之为1+N问题! 什么情况下会产生1+N问题?

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

题目描述:        输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 分析描述:        首先想到的是先计算出最大的...

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

我没有按照剑指offer书上给的思路,自己写了一种实现方式: #include #include #include using namespace std; void printIncre...

打印1到最大的n位数16

解决一个问题时若需要表达一个大数,最容易的方法是使用字符串或数组。题目描述:输入数字n,按顺序打印出从1到最大的n位十进制数。比如,输入3,则打印出1、2、3、4一直到最大的3位数999。解题思路: ...

每天一道算法题(15)——打印1到最大的n位数

题目:             打印1到最大的n位数。如n=4,打印1-9999。 思路:        由于直接使用循环会导致int或者long long都不够存储。因此使用字符串来存储数据,这...

第三章 高质量的代码 打印1到最大的n位数

问题:按照顺序打印出从1到最大n位十进制数。例如输入3,则打印出1,2,3一直到999.   #include "stdafx.h" #include void PrintNumber(char...

输出1到最大的n位数

#include #include using namespace std;bool add(char *num) { if (num == NULL) return fals...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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