字母二十六进制与十进制数之间的转化

xiaoxiao2021-02-28  98

字母表示十进制数:

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;

转载请注明原文地址: https://www.6miu.com/read-45987.html

最新回复(0)