1. 程式人生 > >NYOJ96 n-1位數

NYOJ96 n-1位數

n-1位數

時間限制:3000 ms  |  記憶體限制:65535 KB

難度:1

描述

已知w是一個大於10但不大於1000000的無符號整數,若w是n(n≥2)位的整數,則求出w的後n-1位的數。

輸入

第一行為M,表示測試資料組數。 接下來M行,每行包含一個測試資料。

輸出

輸出M行,每行為對應行的n-1位數(忽略字首0)。如果除了最高位外,其餘位都為0,則輸出0。

樣例輸入

4
1023
5923
923
1000

樣例輸出

23
923
23
0

解題思路:

取後n-1位數的意思是不要第一個數值,所以看到這個題果斷用了 字串,輸入之後把第一個去除,然後開始迴圈判斷,如果第一個字元為0則去除……以此類推。

程式碼如下:

#include<iostream>
#include<string>
#include<cstdio>

using namespace std;

int main()
{
	int M;
	cin >> M;
	while(M--)
	{
		string str;
		cin >> str;
		getchar();
		str.erase(str.begin());
		int n=str.size(),i=0;
		while(i<n)
		{
			if(*str.begin()=='0')
				str.erase(str.begin());
			else 
			{
				cout << str;
				break;
			}
				
			i++;
		}
		
		if(str.empty())
			cout << "0\n";
		
		cout << "\n";
	}
	return 0;
}