将10进制数字转化为26进制用A-Z来表示(华为笔试题第二题)

来源:互联网 发布:38号车评中心 知乎 编辑:程序博客网 时间:2024/05/18 22:45
#include <cstdlib>  #include <iostream>  #include <string>  #include <sstream>#include <math.h>using namespace std;int main(){string az("zabcdefghijklmnopqrstuvwxy");string dest,i;int number, number2;getline(cin, i);if(isdigit(i[0])){stringstream ss;ss << i;ss >> number;do{dest = az[number % 26] + dest;number /= 26;} while (number != 0);cout << dest << endl;}else{if (i.size() > 6) return 0;int output=0;for (int num1 = (i.size() - 1),num2=0; num1 >= 0; --num1,++num2){int j = (i[num1] - 'a')+1;output += j*pow(26, num2);}cout << output  << endl;}system("PAUSE");return 0;}

原创粉丝点击