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;
}
相关文章推荐
- java 保留字符串数字的位数,不够前面补0
- 随机生成8位数(包含字母和数字)
- 1个数的二进制中1的最小位数的位置
- matlab里面如何保留小数特定位数
- 将十进制数转为一个n位数的密码(每位都是个m进制数)
- 【实践】【分离个位数】
- 【转】C# String 前面不足位数补零的方法
- js将小数位不够补足,小数位不够,用0补足位数
- PAT1021. 个位数统计 (15)
- 【mysql】查看mysql版本信息(比如位数,版本号)
- OpenCV Mat数据类型及位数总结
- PAT 1021 个位数统计
- c++中怎么控制浮点型小数点后输出的位数
- 26:统计满足条件的4位数个数
- [note] 几种查看CentOS系统版本和位数的方法
- SQL语句查询出现异常,SQL语句:... GUID 应包含带 4 个短划线的 32 位数(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。
- 蓝桥杯ADV-83——算法提高 寻找三位数
- 设置输出小数的位数
- leetcode解题之258# Add Digits Java版 (相加各个位数)
- javascript大位数相加减