考虑三个问题:
基数:a
进制:可能是10进制,可能是2进制。
阶数:最大的那个数是几位。
看代码:
#include <stdio.h>
#include <stdlib.h>
int add(int baseNum,int jinzhi,int jieNum);
int main()
{
printf("%d",add(1,2,2));//以十进制打印
}
int add(int baseNum,int jinzhi,int jieNum)
{
int i;
int tem=baseNum;
int sum=baseNum;
//基数应该小于进制数
if (baseNum>=jinzhi)
{
return -4;
}
//基础应该大于0
if (baseNum<0)
{
return -1;
}
//进制数应该大于1
if (jinzhi <=1)
{
return -2;
}
//阶数应该大于等于1
if (jieNum<1)
{
return -3;
}
if (baseNum ==0)
{
return 0;
}
if (jieNum==1)
{
return baseNum;
}
else
{
for (i=0;i<jieNum-1;i++)
{
sum=sum+ (tem=(tem*jinzhi+baseNum));
}
}
return sum;
}
2进制计算1+11。结果100。十进制打印为4.
看结果。