高级天翼
定义:将一个正整数的每一位取出来。
方法:
while(x){
这时x%10便是x中的一位
x等于x除以10
}
应用:判断回文数等。
判断x是否是回文数代码:
b=x;a=0;//用b保存x,避免x的值发生变化,不然后面就无法比较a是否等于x了
while(b){//b大于0
a=a*10+b%10;//b%10就是这一位的数,a的目的是为了倒着保存x
b/=10;//每一次丢掉最后一位
}
如果a等于x,则x是回文数。
李泽远在2020-04-02 21:03:27追加了内容
我写问答竟然这么认真,哈哈哈。
新手天翼
循环取位数、常见应用题课堂讲义(火箭v1)
一、 提取个位数
对于一个n而言,模10可以用来提取个位数
1) 123/10=12…3 得到的余数是3
2) 这个余数即是个位数。
二、 三位数提取各个位数
1) 提取个位 a%10
2) 提取十位 a/10%10
3) 提取百位 a/100
三、 任意位提取各位数
原理:
就是把数字变到个位上再进行求余。
1) 即提取个位就除以1,提取十位就除以10,提取百位就除以100,提取千位就除以1000…
2) 然后求余10
初级天翼
如:
12345的话就要
a=12345/10000==1
b=(12345-a*10000)/1000
.
.
.
最后a+b+c+……+?
初级天翼
如:
12345的话就要
a=12345/10000==1
b=(12345-a*10000)/1000
.
.
.
最后a+b+c+……+?
曹博扬在2020-04-04 13:56:04追加了内容
不好意思
网卡
多点了几次
新手光能
循环取位数其实很简单,整体思路大概是这样:
首先定义 一个是要对他进行操作的一个变量n,然后是一个存n每一位的一个变量s。(建议你用long long)
然后输入,进入while循环(while括号里的值根据题目改变),执行以下操作:
假设我要把n拆开,每个数中间隔一个空格输出,举例:n=123456,输出1 2 3 4 5 6
while(n!=0){
s=n%10;//取出从右往左数第一位举例:s=12345%10=5
n/=10;//剔除右往左数第一位举例:12345/10=1234(n是int类型,虽然12345/10=1234.5,但是int会省略小数)
cout<<s<<" ";//循环输出
}
给你举个题目的例子:
假设,有一个数n,我们要求n每个数位上的数的和,举例n=12345,输出15(1+2+3+4+5)
主要代码(会有标注,你自行体会):
以上就是循环取位数的预习,记得上课认真听哦。