數字便歷的方法及應用
阿新 • • 發佈:2018-12-31
利用數字的遍歷來進行的操作
1、統計數字個數
2、數的反轉
一、數字的統計
class Solution { public: /* * param k : As description. * param n : As description. * return: How many k's between 0 and n. */ int digitCounts(int k, int n) { // write your code here int count = 0; for (int i = 0; i <= n; i++) { int temp = i; while (temp / 10) //多位數的處理 { if (temp % 10 == k) { count++; } temp = temp / 10; } if (temp == k) // 一位數的處理 count++; } return count; } };
這個演算法的實現,我是參考了網上程式碼的。
這個主要是通過一些操作,來得到該數值得各個數字,並進行統計。
一個數a 若要求其每一位上的數字。需要進行如下操作:
1,a%10 .對10取餘得到的是個位數的數字。
2、a=a/10
3、重複1,2。
4、以此類推 直至 a為個位數 也就是a%10==0 時,停止操作,遍歷結束
5、如果需要統計數字個數,可以設定變數計數變數count。
二、數的反轉
class Solution { public: /** * @param number: A 3-digit number. * @return: Reversed number. */ int reverseInteger(int number) { // write your code here int result=0; cout<<"請輸入一個大於等於100小於1000的數:"<<endl; cin>>number; int temp=number; while(temp/10){ for(int i=3;i>0;i--){ if(i==3){ result+=(temp%10)*100; temp=temp/10; } if(i==2){ result+=(temp%10)*10; temp=temp/10; }if(i==1){ result+=temp; } } temp=temp/10; } return result; } };
在該演算法中遍歷得到每位數字後,需要將位置調換。在執行的操作上,需要用一個變數n來控制數字所在的位置,並要進行討論。