nyoj题目96:n-1位数

时间:2022-07-11 22:39:01

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 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++再回头看。