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

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

如:判断数字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


### 回答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、付费专栏及课程。

余额充值