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 }

 

posted @ 2014-11-14 15:56  zqxLonely  阅读(268)  评论(0编辑  收藏  举报