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)文章
C語(yǔ)言實(shí)現(xiàn)單鏈表的快速排序算法
大家好,本篇文章主要講的是C語(yǔ)言實(shí)現(xiàn)單鏈表的快速排序算法,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01
c++函數(shù)指針和回調(diào)函數(shù)示例
這篇文章主要介紹了c++函數(shù)指針和回調(diào)函數(shù)示例,需要的朋友可以參考下2014-05-05
利用C++實(shí)現(xiàn)簡(jiǎn)易的狼人殺游戲
狼人殺游戲是一款非常有趣的角色扮演游戲,它需要玩家之間互相猜測(cè)身份并進(jìn)行投票,通過(guò)推理來(lái)找出真正的狼人。本文將用C++實(shí)現(xiàn)這一游戲,感興趣的可以了解一下2023-04-04
C語(yǔ)言scanf,fscanf和sscanf的區(qū)別
每種語(yǔ)言都對(duì)正則表達(dá)式有著不同程度的支持,在C語(yǔ)言中,有輸入功能的這三個(gè)函數(shù)對(duì)正則表達(dá)式的支持并不強(qiáng)大,但是我們還是有必要了解一下2021-10-10
一文詳解C語(yǔ)言中的switch語(yǔ)句和while循環(huán)
這篇文章主要給大家詳細(xì)介紹了C語(yǔ)言中的switch語(yǔ)句和while循環(huán),文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-12-12
C++面向?qū)ο蠖嗉?jí)菜單向Arduino的移植問(wèn)題小結(jié)
這篇文章主要介紹了C++面向?qū)ο蠖嗉?jí)菜單向Arduino的移植問(wèn)題及實(shí)現(xiàn)思路,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06

