NYOJ 96 n-1位数

来源:互联网 发布:淘宝客服兼职是真的吗 编辑:程序博客网 时间:2024/04/27 17:59

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。
样例输入
4102359239231000
样例输出
23923230

 

思路:计算出所给数据的位数t,然后用输入的数对10^(t-1)进行取模操作。

 

#include <stdio.h>#include <math.h>int main(){int m;scanf("%d",&m);while (m--){unsigned int i,r;int t = 0;scanf("%u",&i);r = i;while (r !=0 ){r /= 10;t++;}printf("%d\n",i % (int)pow(10,t-1));}return 0;}


 

 

来看最优代码

 #include<cstdio>int main(){int n,m;scanf("%d",&n);while(n--){scanf("\n%*c%d",&m);printf("%d\n",m);}}                


百度了一下,scanf("\n")是吸收掉空格字符,包括回车,空格,制表符。。。

而对于控制符 %*c  表示跳过此数据不读入.,所以也能达到效果。

这题也是对scanf控制符的一种考察。

 

0 0
原创粉丝点击