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
-
答案:
-
#include<stdio.h>
#include<string.h>
int main()
{
int n,l,i,j;
char a[10];
scanf("%d",&n);
getchar();
while(n--)
{
int flag=0;
scanf("%s",&a);
l=strlen(a);
for(i=1; i<l; i++)
{
if(a[i]=='0')
flag++;
}
if(flag==l-1)
{
printf("0");
}
else
{
for(i=1; i<l; i++)
{
if(a[i]!='0')
{
for(j=i; j<l; j++)
{
printf("%c",a[j]);
}
break;
}
}
}
printf("\n");
}
} -
答案2:
-
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int m,flag=0,t=1,i,p;
scanf("%d",&m);
p=m;
for(i=0;; i++)
{
p=p/10;
flag++;
if(p>0&&p<10)
{
break;
}
}
for(i=0; i<flag; i++)
{
t=t*10;
}
printf("%d\n",m-p*t);
}
}