N进制数组转换成正整数

给定一个任意长度的数组,其中的元素按照一定的进制(N进制)来转换成正整数

//把数组中的元素按照N进制转换成为正整数
#include <stdio.h>
#include <stdlib.h>
#define SIZE 20 //这里SIZE的值一定要大于需要的数组长度,剩下的空余的数组元素默认为零。函数里面有对于零的处理
int data[SIZE] = {};//用于存放N进制的数组
int num;//N进制

/*
* 函数名:jinzhi_change
* 函数功能:进制转换
* 入口参数:1.int data[SIZE] 存放需要转换成整数的N进制的数组 
*           2.int num N进制
* 返回值:返回最后计算得出的转换成的整型数值
*/
int jinzhi_change(int data[SIZE],int num)
{
    int size = SIZE;//局部变量,用来去掉数组为零的那些数字
    for(int i=SIZE-1;i>=0;i--){//从后向前找第一个不是零的数字作为转换的起始位
        if(data[i]==0){
        size --;}
    }
    int output=0;//最终输出值
     for(int j=size-1;j>=0;j--)//从后向前按权值展开
    {
        int temp =1;
        for(int k=size-1;k>j;k--)
        {temp = temp *num;}
        output += temp* data[j];
    }
     return output;
}
int main(){
    freopen("input.txt","r",stdin);
    scanf("%d",&num);//读入N进制
        for(int i=0;i<SIZE;i++){//读入数据
            scanf("%d",&data[i]);}
    printf("%d\n",jinzhi_change(data,num));
    //system("pause");
}

测试用例:

input.txt

8
1 2 3 4 5 6 7 1 2 3

转载于:https://www.cnblogs.com/linux0537/p/6088835.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值