課程
/后端開發(fā)
/C
/C語言入門
為什么?百位是num%100(這個得出來不是1嗎)? ?十位是(num%100)/10(這個得出來不是0嗎)? ? 個位是num%10(這個得出來不也是0嗎)? ? 誰能解釋一下到底怎么定義這個百十個位的?感謝!
2019-11-29
源自:C語言入門 4-9
正在回答
首先咱了解一下模運算(%),意思是取余,10%4=2;(理解10除以4,余數(shù)是2),然后int類型會將一個數(shù)字強制轉(zhuǎn)換成整數(shù),如(int)(1.2)=1,(int)(8.9)=8,也就是直接砍掉小數(shù)部分,保留整數(shù)部分。
百位
那么題中要求定位到百位,那么也就是給定任意一個三位數(shù)(已給定num是整型int,只保存整數(shù)),那么任意一個三位數(shù)除以100,得到的數(shù)就是百位了(舉例288/100=2.88,取整型后保存為2,以此類推,百位數(shù)就可以定位了)
十位
然后十位,這就用到模運算了,給定一個整型的三位數(shù),首先要去掉百位,如三位數(shù)是789,那么789%100,根據(jù)模運算,結(jié)果就是89,好了,余數(shù)出來了已經(jīng)排除掉了百位,那就好辦,同取百位一樣,89/10=8.9,由于num是整型,那么保存后8.9也就變成了8;
個位
再說個位,就更好辦了。有了上邊百位十位的算法,給定一個三位數(shù),各位就直接對10進行模運算就行了,因為百位和十位都能整除10,剩下的余數(shù)就是個位了。
如此解說,可理解?
首先:所謂“水仙花數(shù)”是指一個三位數(shù),所以要拿到最小的三位數(shù)100及最大的三位數(shù)??
int類型不四舍五入,只保留整數(shù)部分。前面的課程有提到。
所以num=100;num<1000;num++? ? ? 這樣就拿到了我們想要范圍所有的三位數(shù)
百位數(shù)直接除以100得到的數(shù)不會四舍五入,直接保存整數(shù)部分,百位數(shù)拿到。
十位數(shù)同理,但是要先拿到這個十位數(shù) 除去百位數(shù)就是我們要的數(shù)? 用%取余? 拿到十位數(shù)后同理只不過是除以10,十位數(shù)拿到。
個位數(shù),除去百位、十位數(shù)就是個位數(shù),num為三位數(shù)那么百位、十位是可以整除10的剩下的余數(shù)就是我們要的個位數(shù)。??
假設num = 371
百位數(shù):num/100=3.71? ?那么百位數(shù)為3(不會四舍五入直接保存為3)
十位數(shù):(num%100)/10? ?num%100 余數(shù)為71? ? 71/10 =7.1? 保存為7
個位數(shù):num%10=1
個人理解希望對你有所幫助。
GKWBTT
小白萌新up
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
3 回答這個位十位百位取余,怎么取啊,真的不是很理解
5 回答不太理解怎么取個位十位百位的數(shù)字,這是怎么操作的?
2 回答水仙花十位數(shù)怎么定義
2 回答獲取百位個位十位的那三行為什么要那么寫??
1 回答過去三位數(shù)字num百位、十位、個位上的數(shù)字怎么算的?沒看懂,求解
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2020-02-02
百位
那么題中要求定位到百位,那么也就是給定任意一個三位數(shù)(已給定num是整型int,只保存整數(shù)),那么任意一個三位數(shù)除以100,得到的數(shù)就是百位了(舉例288/100=2.88,取整型后保存為2,以此類推,百位數(shù)就可以定位了)
十位
然后十位,這就用到模運算了,給定一個整型的三位數(shù),首先要去掉百位,如三位數(shù)是789,那么789%100,根據(jù)模運算,結(jié)果就是89,好了,余數(shù)出來了已經(jīng)排除掉了百位,那就好辦,同取百位一樣,89/10=8.9,由于num是整型,那么保存后8.9也就變成了8;
個位
再說個位,就更好辦了。有了上邊百位十位的算法,給定一個三位數(shù),各位就直接對10進行模運算就行了,因為百位和十位都能整除10,剩下的余數(shù)就是個位了。
如此解說,可理解?
2019-11-29
首先:所謂“水仙花數(shù)”是指一個三位數(shù),所以要拿到最小的三位數(shù)100及最大的三位數(shù)??
int類型不四舍五入,只保留整數(shù)部分。前面的課程有提到。
所以num=100;num<1000;num++? ? ? 這樣就拿到了我們想要范圍所有的三位數(shù)
百位數(shù)直接除以100得到的數(shù)不會四舍五入,直接保存整數(shù)部分,百位數(shù)拿到。
十位數(shù)同理,但是要先拿到這個十位數(shù) 除去百位數(shù)就是我們要的數(shù)? 用%取余? 拿到十位數(shù)后同理只不過是除以10,十位數(shù)拿到。
個位數(shù),除去百位、十位數(shù)就是個位數(shù),num為三位數(shù)那么百位、十位是可以整除10的剩下的余數(shù)就是我們要的個位數(shù)。??
假設num = 371
百位數(shù):num/100=3.71? ?那么百位數(shù)為3(不會四舍五入直接保存為3)
十位數(shù):(num%100)/10? ?num%100 余數(shù)為71? ? 71/10 =7.1? 保存為7
個位數(shù):num%10=1
個人理解希望對你有所幫助。