c++编程:D进制的A+B(1022-PAT乙级)
1022. D进制的AB#includebits/stdc.h using namespace std; int main() { int A, B, D; // 定义三个整数变量 A、B 和进制 D cin A B D; // 从标准输入读取 A、B、D 的值 int sum A B; // 计算 A 和 B 的和存入 sum // 处理 sum 0 的特殊情况 if(sum 0) { // 如果和为 0 cout 0 endl; // 直接输出 00 的任何进制表示都是 0 return 0; // 程序结束 } stackint s; // 创建一个整型栈 s用于存储进制转换后的每一位 // 除 D 取余法将 sum 转换为 D 进制 while(sum) { // 当 sum 不为 0 时循环 s.push(sum % D); // 计算 sum 除以 D 的余数压入栈中 sum / D; // sum 整除 D准备处理下一位 } // 循环结束后栈中从栈底到栈顶存储的是 D 进制数的低位到高位逆序 // 出栈输出从高位到低位依次输出 while(!s.empty()) { // 当栈不为空时循环 int digit s.top(); // 获取栈顶元素当前最高位 s.pop(); // 弹出栈顶元素 // 判断是否需要输出字母针对十六进制等大于 10 的进制 if(digit 10) { // 如果数字小于 10 cout digit; // 直接输出数字0-9 } else { // 如果数字大于等于 10即 10-15 // 转换为对应字母10→A, 11→B, 12→C, 13→D, 14→E, 15→F cout char(digit - 10 A); } } return 0;
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2480685.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!