输出十进制的乘法表是语法题,p 进制的乘法表就是多了一次进制转换。
-
写一个函数I2P,输出 十 进制的数,返回它对应的 p 进制下的结果。
-
输出乘法表: 对于 i * j 输出: I2P(i) * I2P(j) = I2P(i * j) 即可
进制之间的转换,可以看下这个:
进制之间的转换:https://mp.weixin.qq.com/s/eBjb4sDREqqDoTgsrDilpQ
代码:
#include<iostream>
#include<algorithm>
using namespace std;
int p;//p进制下的乘法表
string I2P(int a)//十进制的数转换成 p 进制的数
{
string res;
while(a)
{
int t = a % p;//取余数放入结果
if(t < 10)//
res = char('0' + t) + res;//数字转换成对应字母后,每次放在最左边
else
res = char('A' + t - 10) + res;
a /=p ;//整除后继续计算
}
return res;
}
int main(){
cin >> p;
for(int i = 1; i < p; i++)
{
for(int j = 1; j <= i; j++)
{
cout << I2P(i) << "*" << I2P(j)<< "=" << I2P(i*j) <<" ";
}
cout << endl;
}
return 0;
}
求个点赞~,有问题直接评论即可
为什么 i和j也要转换进制呢
海绵宝宝,我爱死你了,(づ ̄3 ̄)づ╭❤~
请问调用函数为什么要用string类型啊
懂了懂了
所以为什么是string 函数呀
他是把每个数字一个一个转换的返回答案的时候用string类型好存储答案一些
我懂了!谢谢你!