题目96
已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。
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;
}
原文:http://www.cnblogs.com/dreamgoing/p/3587125.html