字母表示十进制数:
a 1
b2
aa 27
ab 28
huawei 104680767
输入参数是字符串,字母必须是小写,输入的字母最小是1位,最大是6位,输入十进制数不超过32位整数的最大值,判断字符串的有效性,如果无效,输出“”ERROR”
输出描述:输入是十进制数,输出是对应的字母表示的数;输入是字母,输出是十进制数。
void convert(const char *input, char *output)输入参数是 input,输出参数是output。输出通过输出参数输出。例如;
#include "stdafx.h" #include <iostream> using namespace std; int main(int argc, char *argv[]) { for (int i = 0; i<argc; i++) { cout << argv[i] << '\t'; } return 0; } #include <iostream> #include <string> #include <cmath> using namespace std; string s,s1; int number; void convert(const char *input, int *output) { int len = strlen(input); int sum = 0; for (int i = 0; i <len; i++) { sum += pow(26, s.size() - i - 1)*int(s[i] - 'a' + 1); } ///ss = (char)sum; output = ∑ cout << *output << endl; //cout << *output << endl则输出一个数值5 } int main() { cin >> s; int *put =new int[1000]; convert(s.c_str(), put);
}
以下是整个程序:
/*while (cin >> s >> number) { int sum = 0; /*for (int i = s.size(); i>0; i--) { sum += pow(26, (i - 1))*int(s[s.size() - i] - 'a' + 1); } for (int i = 0; i < s.size(); i++) { sum += pow(26, s.size() - i - 1)*int(s[i] - 'a' + 1); } cout << sum << endl; // 此处的写法和题目中要求还是不太一样此处Z=0,而题中是z=26 /*string az("zabcdefghijklmnopqrstuvwxy"); string dest; do { dest = az[number % 26] + dest; number /= 26; } while (number != 0); cout << dest << endl;*/ string res; while (number > 0) { int m = number % 26; if (m == 0) m = 26; res =(char)(m + 'a'-1) + res;//或者写成res=(char)(m+96)+res; number = (number - m) / 26; } cout << res << endl;*/ system("pause"); return 0;