假設如今有一段長度爲 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); } }