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
- 样例输出
-
23 923 23 0
#include <stdio.h>
int main ()
{
int n;
int a[1000], b[100], m, k;
int s, q;
scanf ("%d", &n); //先确定多少位
while (n--)
{
scanf ("%d", &a[n]);
k = a[n];
m = 0;
while (k)
{
m++;
b[m] = k % 10;
k = k / 10;
} //求一个数有每一位数字的方法。
s = m - 1;
q = 1;
while (s--)
q = 10 * q; //要求后n-1位,所以要减去最前头的那一位。
printf ("%d\n", a[n] - q * b[m]);
}
return 0;
}
好久没做了,前一段在看c的视频,求每一个数字的方法刚好学到了。
优秀代码:
#include<cstdio>
int main()
{
int n,m;
scanf("%d",&n);
while(n--)
{
scanf("\n%*c%d",&m);
printf("%d\n",m);
}
}
百度了一下cstdio是c++的,等学了c++再回头看。