n-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
1 #include <stdio.h> 2 #include <string.h> 3 4 int main(){ 5 int T; 6 int n; 7 char digit[20]; 8 int i; 9 int length; 10 int flag; 11 12 scanf("%d",&T); 13 14 while(T--){ 15 scanf("%d",&n); 16 17 i=0; 18 while(n){ 19 digit[i]=n%10+'0'; 20 i++; 21 n/=10; 22 } 23 digit[i]='\0'; 24 length=strlen(digit); 25 26 flag=0; 27 for(i=length-2;i>=0;i--){ 28 if(digit[i]=='0'){ //当遇到0时 29 if(flag==1) //flag为0时就是忽略前导0,flag为1时要打印此时的0 30 printf("%c",digit[i]); 31 } 32 33 if(digit[i]!='0'){ //当遇到不为0的数时,打印此数并且后面的0可以打印 34 flag=1; 35 printf("%c",digit[i]); 36 } 37 } 38 39 if(flag==0) 40 printf("0"); 41 42 printf("\n"); 43 } 44 45 return 0; 46 }