C語(yǔ)言算法積累分離數(shù)位示例
題目:輸出一個(gè)三位整數(shù)的個(gè)、十、百位數(shù)。
關(guān)鍵字:得到數(shù)位
思路:
Q:如何利用簡(jiǎn)單的基本運(yùn)算來(lái)得到一個(gè)數(shù)字的各個(gè)數(shù)位上的數(shù)字?
A:利用除法和求余運(yùn)算:以153為例
首先,百位最容易得到:153/100=1。任何三位數(shù)除以100都是得到其百位的數(shù)字
其次,個(gè)位也好弄:153%10=3。任何三位數(shù)對(duì)10取余都是其個(gè)位數(shù)。
最后,十位數(shù)有四個(gè)方法。
最好想的:
1.用(原三位數(shù)—百位數(shù)* 100—個(gè)位數(shù) * 1)/10
153-1X100-1X3=50; 50/10=5
2.將原三位數(shù)對(duì)100取余,再除以10。
不好想的:
利用求解百位和個(gè)位的方式,組合著來(lái)求解十位
(簡(jiǎn)而言之,就是只有最高位和最低位的數(shù)是可以通過(guò)除法,取余來(lái)一步得到的,所以就是要將十位數(shù)化到最高位或者最低位上)
1.化在最高位上:
- 1):通過(guò)已經(jīng)求出的百位數(shù),將原三位數(shù)減去其百位數(shù)100f1a;153-1100=53;
- 2):將剩余部分除以10。53/10=5
2.化在最低位上:
- 1):通過(guò)已經(jīng)求出的個(gè)位數(shù),將原三位數(shù)減去其個(gè)位數(shù)1:153-13=150;
- 2):將剩余部分對(duì)10取余。53%10=3
代碼:
int main() { /*x,bw,sw,gw分別用來(lái)存放三位正整數(shù)及其百位,十位和個(gè)位數(shù)*/ int x, bw, sw, gw; printf("請(qǐng)輸入一個(gè)三位正整數(shù):\n"); scanf_s("%d", &x); bw = x / 100; sw = (x % 100) / 10; gw = x % 10; printf("個(gè)位數(shù)為%d ,十位數(shù)為%d, 百位數(shù)為%d", gw, sw, bw); return 0; }
以上就是C語(yǔ)言算法積累分離數(shù)位示例的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言算法分離數(shù)位的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于QT制作一個(gè)TCPServer與TCPClient的通信
這篇文章主要為大家詳細(xì)介紹了如何基于QT制作一個(gè)TCPServer與TCPClient的通信,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12淺析VSCode tasks.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${
這篇文章主要介紹了關(guān)于VSCode tasks.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03C語(yǔ)言深入詳解四大內(nèi)存函數(shù)的使用
這篇文章主要介紹了C語(yǔ)言的四大內(nèi)存函數(shù),講解了mencpy、memmove、memcmp、memset函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-07-07C++?qt實(shí)現(xiàn)打開(kāi)關(guān)閉狀態(tài)按鈕的代碼
這篇文章主要介紹了C++?qt實(shí)現(xiàn)打開(kāi)關(guān)閉狀態(tài)按鈕,用QCheckBox可以實(shí)現(xiàn),只要在選擇與未選擇的狀態(tài)設(shè)置不同的圖片即可完成,代碼簡(jiǎn)單易懂,需要的朋友可以參考下2022-03-03Linux/C++多線程實(shí)例學(xué)習(xí)十字路口車輛調(diào)度
這篇文章主要為大家介紹了Linux/C++多線程實(shí)例學(xué)習(xí)十字路口車輛調(diào)度示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05