考虑三个问题:
基数: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.
看结果。

本文介绍了一个简单的C语言程序,该程序实现了一个特定的加法运算功能,能够处理不同进制下的数字加法,并将结果转换为十进制进行输出。通过具体的例子——2进制下1+11的计算,展示了如何使用递归思想来解决此类问题。
8763

被折叠的 条评论
为什么被折叠?



