輸出一個數的逆序數,及其位數


7-13 輸出一個數的位數及其逆序數 (12分)
 

從鍵盤輸入一個正整數(不超過9位,即最多9位),要求編程實現以下功能:

① 求出這個數是幾位數,並輸出其位數;

② 輸出這個數的逆序數。

輸入格式:

輸入一個正整數(不超過9位,即最多9位)。

輸出格式:

輸出剛剛輸入的正整數,包含的位數及其逆序數,中間用英文逗號分隔開,最后換行。

輸入樣例:

147258369
 

輸出樣例:

147258369,9,963852741

我之前已知是這樣寫的

#include<bits/stdc++.h>
using namespace std;
int rev_num(int x);
void fun(int x, int &digit, int &rev)
{
    int a[20];
    int i = 0;
    while(x > 0)
    {
        a[i++] = x%10;
        x/=10;
    }
    digit = i;
    rev = 0;
    for(int i = 0; i < digit; i++)
    {
        rev += a[i];
        if( i !=digit-1)
            rev*=10;
    }
}

int main()
{
    int x;
//    while(cin>>x)
    cin>>x;
    {
        int digit = -1;
        int rev = -1;
        fun(x,digit, rev);
        cout<<x<<','<<digit<<','<<rev<<endl;
    }

    return 0;
}

 

 

這是改進后的

#include<bits/stdc++.h>
using namespace std;
int rev_num(int x);
void fun(int x, int &digit, int &rev)
{
    digit = 0;
    rev = 0;
    while(x > 0)
    {
        rev = rev*10 + x%10;
        x/=10;
        digit++;
    }
}

int main()
{
    int x;
    cin>>x;
    {
        int digit = -1;
        int rev = -1;
        fun(x,digit, rev);
        cout<<x<<','<<digit<<','<<rev<<endl;
    }

    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM