设计一个函数,计算a的b次方所有位的数字之和,其中0<a<10,1<b<10000
3条回答 默认 最新
- 某新手 2022-03-12 09:32关注
大概思路就是做大数乘法(题目给的最多可以是9^9999肯定超过了long long)
大数乘法用数组来储存每个位的数据,模拟乘法进位过程,最后遍历一遍数组相加每个位的值输出
然后代码在下面,希望能帮助到你#include <bits/stdc++.h> using namespace std; #define MAXNUMBER 10000 long long getpowerdsum(int a, int b) { long long sum = 0; int next = 0; int add = 0; int num[MAXNUMBER] = {0}; num[MAXNUMBER-1] = a; for(int i = 1; i < b; ++i) { for(int j = MAXNUMBER-1; j > 0; --j) { num[j] *= a; if(j == next) { num[j] += add; next = 0; add = 0; } if(num[j] >= 10) { next = j - 1; add = num[j] / 10; num[j] %= 10; } } /* 如果要输出查看计算过程就取消这里的注释 for(int k = 1; k < MAXNUMBER; ++k) { cout << num[k]; } cout << endl; */ } for(int i = MAXNUMBER-1; i > 0; --i) { sum += num[i]; } return sum; } int main() { cout << getpowerdsum(2,10) << endl; cout << getpowerdsum(9,10) << endl; cout << getpowerdsum(9,9999) << endl; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 关于大棚监测的pcb板设计
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用