密碼窮舉次數

假設如今有一段長度爲 n 的密碼字符,由 0 ~ 9 和 小寫字母 a ~ f 組成 。ios

輸入一段密碼,求計算窮舉該密碼所需的次數。 ( a ~ f 請將其轉化爲 10 ~ 15 )spa

如: code

輸入 : 00    輸出 :1blog

輸入 : 01    輸出 :2ci

輸入 : 1a    輸出 :27string

 

#include <iostream>
#include <string>

using namespace std;
long countall(string &s);
long count(string &s,int m,int n);
int main()
{
    
    string s;
    cin >> s;
    cout <<"總數是"<< countall(s)<<endl;
    return 0;
}

long countall(string &s)
{
    long sum = 0;
    sum =  count(s,0,s.length());
    return sum;
}
long count(string &s,int m,int n)
{
    /*獲取s的第m位*/
    char c = s[m];
    if(c >= '0' && c <= '9')
        c -= '0';
    else
        if(c >= 'a' && c <= 'f')
            c = c - 'a' + 10;

    /*到達最低位,返回其值+1*/
    if(m == n - 1)
        return c + 1;
    else
    {
        long sum = 0;
        while(c--)
            sum += pow(16,n - m - 1);
        
        return sum + count(s,m+1,n);
    }
}
相關文章
相關標籤/搜索