nyoj 96 n-1位数(处理前导 0 的情况)(string)
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
C代码:1 #include <cstdio> 2 #include <cstring> 3 4 int main(){ 5 int i, j, n; 6 char a[12]; 7 scanf("%d", &n); 8 while(n--){ 9 scanf("%s", a); 10 int len = strlen(a); 11 for(i = 1; i < len; i++){ 12 if(a[i] != '0') 13 break; 14 } 15 if(i < len) 16 for(j = i; j < len; j++) 17 printf("%c", a[j]); 18 else 19 printf("0"); 20 printf("\n"); 21 } 22 return 0; 23 }
C++代码
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 int main(){ 6 int n, len, i; 7 string s; 8 cin >> n; 9 while(n--){ 10 cin >> s; 11 len = s.length(); 12 13 for(i = 1; i < len; i++) 14 if(s[i] != '0') 15 break; 16 17 if(i == len){ 18 cout << '0' << endl; 19 continue; 20 } 21 22 for(int j = i; j < len; j++) 23 cout << s[j]; 24 cout << endl; 25 } 26 return 0; 27 }
越努力,越幸运