题目:
自己实现进制转换略显复杂,尝试用itoa()函数直接转换,发现评测系统中没有这个函数,一直报错,所以只能自己实现
这里要做的就是把十进制转换成P进制(不断取模作除法)
#include<bits/stdc++.h>
using namespace std;
long ten;
int a[50];
int P,temp,q,k;
void zhuanhuan(int target)
{
k=0; //k的重置
while(target!=0)
{
temp=target%P;//取模
target=target/P;//除法取整
k++;
a[k]=temp;//存入数组,从a[1]开始存
}
for(q=k;q>=1;q--)//倒序输出
{
if(a[q]>=10)
cout<<(char)(a[q]+55);
else
cout<<a[q];
}
}
int main()
{
cin>>P;
for(int i=1;i<P;i++)
{
for(int j=1;j<=i;j++)
{
zhuanhuan(i);
cout<<'*';
zhuanhuan(j);
cout<<'=';
ten=i*j;
zhuanhuan(ten);
cout<<' ';
}
cout<<endl;
}
return 0;
}
关于十进制转换成任意进制的问题,请移步: