0%

C6 | 求数字的低n-1位的数

读前福利:几百本互联网技术书籍送给大家https://mp.weixin.qq.com/s/dFqVQ2qJxvQ0YrIlPISJuw


1 题目

函数:unsigned fun(unsigned w)

功能:求数字的低n-1位的数

描述:w 是一个大于10的无符号整数,若 w 是 n(n>=2)位的整数,函数求出来w的低n-1位的数作为函数值返回

举例:w 值为5923,则函数返回 923

2 思路

两步走:

  1. 先判断当前无符号整数的位数,记录位数*10。例如:如果有三位,那么记录time=100
  2. 根据time计算后 n-1 位,即:w-((w/time)*time)

3 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h> 
#include <stdlib.h>

/**
函数:unsigned fun(unsigned w)
功能:求数字的低n-1位的数
描述:w 是一个大于10的无符号整数,若 w 是 n(n>=2)位的整数,函数求出来w的低n-1位的数作为函数值返回
举例:w 值为5923,则函数返回 923
**/

unsigned fun(unsigned w) {
// 先判断数字的位数
int temp_w = w;
int time = 1; // 位数10的指数次
while(temp_w > 0) {
time*=10;
temp_w = temp_w/10;
}
time = time/10;
// 计算返回
return w-((w/time)*time);
}


int main(int argc, char const *argv[]) {
int w;
printf("请一个大于10的无符号整数:");
scanf("%d", &w);
printf("无符号整数低n-1位的数为:%d\n", fun(w));
}

示例结果:

1
2
3
4
5
6
7
$ gcc ex007.c -o demo
$ ./demo
请一个大于10的无符号整数:12345
无符号整数低n-1位的数为:2345
$ ./demo
请一个大于10的无符号整数:765432
无符号整数低n-1位的数为:65432

最后

在这里给大家准备了几百本的互联网技术类书籍,需要的来下载吧!点击获取
有任何问题,欢迎随时交流!!!

------ 全文结束------