得到一个数字中每一位的数字

学习编程也有一段时间了,随着学习的不断深入,我越来越体会到了算法的重要性,最近遇到了一些非常有意思的算法,比如打印水仙花数、将数字逆置,在这两个算法中会用到一个数字钟每一位的值

如:判断数字123是否是水仙花数需要得到每一位的数字

通常计算每一位的数字的算法是:

个位:a = 123 % 10 = 3

十位:b  = 123 %100 / 10 = 2

百位::c = 123 % 100 = 2


随着位数的越来越大,这种方法满足不了程序的需求

比如计算:123445677777777777777777777每一位的数字使用上面的方法肯定是不行的


最近我学了一种比较好的方法:

为了便于理解这种方法,我用前面的例子使用这种方法计算123中每一位的值


需要计算的数字:

1 2 3

首先定义变量  j = 123

m = 0


第一步:求出个位上的数字

m = j % 10 = 123 % 10 = 3

j = j / 10 =  123 / 10 = 12;//将三位数变成两位数


第二步:求出十位上的数字

m = j % 10 = 12 % 10 = 2

j = j / 10 = 12 / 10 = 1//将两位数变成一位数


第三步:求出百位上的数字

m = j % 10 = 1 % 10 = 1

j = j / 10 = 1 / 10 = 0//将数字清零


最后得到个位上的数字是3,十位上的数字是2, 百位上的数字是1


程序代码:

#include <stdio.h>
#include <stdlib.h>

void main()
{
	int num;
	int i = 0;

	printf("请输入一个数字:");
	scanf("%d", &num);

	while(num>0)
	{
		i = num % 10;//计算每一位上的数字

		printf("%d\n", i);//打印每一位数字

		num = num / 10;//实现位与位之间的遍历
	}

	system("pause");
}

测试程序:
当输入123时


当输入一个比多位数时:比如12341221


  • 15
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 好的,以下是将一个4位数分别输出每位数字代码: ```python num = input("请输入一个4位数:") # 获取用户输入的4位数 # 使用字符串的下标操作分别获取一位数字 digit_1 = num[0] digit_2 = num[1] digit_3 = num[2] digit_4 = num[3] print("千位数字是:", digit_1) print("百位数字是:", digit_2) print("十位数字是:", digit_3) print("个位数字是:", digit_4) ``` 希望对你有帮助! ### 回答2: 假设读入的4位数为num。 首先,我们需要将num按位拆解出来。可以使用整除和取余运算符来实现此目的。 首先,我们可以通过整除运算符将num的千位数(即最高位数)提取出来,可以使用num // 1000来实现。接着,可以通过取余运算符来将num的个位数(即最低位数)提取出来,可以使用num % 10来实现。 类似地,我们可以通过整除运算符将num的百位数提取出来,可以使用(num // 100) % 10来实现。同样地,我们可以通过取余运算符将num的十位数提取出来,可以使用(num // 10) % 10来实现。 最后,我们将每位数字分别输出即可。假设分别将千位数、百位数、十位数和个位数分别存储在变量thousands、hundreds、tens和units,则输出的语句如下: print("千位数:", thousands) print("百位数:", hundreds) print("十位数:", tens) print("个位数:", units) ### 回答3: 读入一个4位数后,我们需要将其逐位分解并输出每一位数字。 首先,假设我们输入的4位数为1234。 我们可以使用数学运算来获得每一位数字。首先,我们可以使用取余运算来获得最后一位数字。在这种情况下,我们可以使用1234 % 10 = 4 来得到最后一位数字4。 接下来,我们可以使用整除运算来去除掉已经获得的最后一位数字。在这种情况下,我们可以使用1234 // 10 = 123 来获得剩余的三位数字123。 然后,我们可以使用相同的方法再次进行运算,以获得倒数第二位数字。在这种情况下,我们可以使用123 % 10 = 3 来得到倒数第二位数字3。 同样地,我们可以继续使用这种方法来获得剩下的两位数字。在这种情况下,我们可以使用12 // 10 = 1 来获得剩下的两位数字1。 最后,我们可以使用相同的方法最后一次,以获得第一位数字。在这种情况下,我们可以使用1 % 10 = 1 来得到一位数字1。 因此,对于输入的4位数1234,每一位数字分别是1、2、3和4。 综上所述,我们可以通过使用数学运算来读取一个4位数,并将每位数字分别输出。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值