-
描述
-
已知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
#include<stdio.h> int main() { int t; int i,tmp,n,first,flag; char num[20]; scanf("%d",&t); while(t--) { flag = first = 1; i = 0; scanf("%ld",&n); while(n!=0) { tmp = n%10; num[i++] = tmp+'0'; n = n/10; } num[i-1] = '\0';//去掉最高位 for (i-=2;i>=0;) { if (first && num[i]=='0')i--; //判断前导0 else { first = 0; // putchar(num[i]); i--; flag = 0; } } if (flag) printf("0");//判断是否都为0,是则输出0 putchar('\n'); } return 0 ; }
-
第一行为M,表示测试数据组数。
下面一牛人做法:
#include<cstdio>
int main()
{
int n,m;
scanf("%d",&n);
while(n--)
{
scanf("\n%*c%d",&m);
printf("%d\n",m);
}
}