您的位置:首页 > 其它

n-1位数

2014-03-08 15:51 204 查看

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


#include<stdio.h>

int main(){

int test,m,p,i;

scanf("%d",&test);

while(test--){

int n=0;

int x=1;

scanf("%d",&m);

p=m;

while(p){

n++;

p/=10;

}

for(i=0;i<(n-1);i++)

x=x*10;

printf("%d\n", m%x);

}

return 0;

} //求后几位数可以用取余数的方法。

优秀代码:

#include<stdio.h>

#include<string.h>

int main( void )

{

int N = 0;

char a[7];//保存输入

int l = 0;//保存数字长度

int i = 0;

int j = 0;

scanf("%d",&N);

getchar();



while( N-- )

{

scanf("%s",a);



l = strlen( a );



for( i = 1; i < l && a[i] == '0'; i++ ) ;//从第二个开始找到第一个不为0的下标



if( i == l )//如果出了最高位,都是0,则输出0

{

printf("0");

}

else

{

for( ; i < l; i++ )//从第一个不是0的开始输出

{

printf("%c",a[i]); //问题的关键是找出第一个不为0的下标 。

}

}



printf("\n");

}





//printf("\n\nHello World!\n");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: