诡异!!
  • 板块P1143 进制转换
  • 楼主2345A
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/18 11:14
  • 上次更新2024/1/18 16:11:10
查看原帖
诡异!!
565070
2345A楼主2024/1/18 11:14

为何题解代码100分

纪录 我的代码却60分(感觉没什么区别 我的代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
   string a;
   int c[1000000]={0},d=0,b=0,f=0,g=0,chuchun=0,chang=0;
   cin>>d>>a>>f;
   chang=a.size();
    for(int i=0;i<chang;i++)
	{
        if(a[i]<'A')
		{
            b=pow(d,a.size()-i-1);
            b=b*(a[i]-48);
            chuchun=chuchun+b;
        }
        else
		{
            b=pow(d,a.size()-1-i);
            b=b*(a[i]-'A'+10);
            chuchun+=b;
        }
    }
        while(1)
		{
		if(chuchun==0)
		break;
        c[g++]=chuchun%f;
        chuchun/=f;
        }
    for(int i=g-1;i>=0;i--)
	{
        if(c[i]>=10)
		cout<<c[i]+'A'-10;
        else 
        cout<<c[i];
    }
    return 0;
}

题解代码

#include<bits/stdc++.h>
using namespace std;
string a;
int c[10000000],d,e,f,g,sum,ans;
int main()
{
    scanf("%d",&d);
    cin>>a;
    scanf("%d",&f);
    for(int x=0;x<a.size();x++){
        if(a[x]<'A'){
            e=pow(d,a.size()-x-1);
            e*=(a[x]-'0');
            sum+=e;
        }
        else{
            e=pow(d,a.size()-1-x);
            e*=(a[x]-'A'+10);
            sum+=e;
        }
    }
        while(sum>0){
        c[g++]=sum%f;
        sum/=f;
    }
    for(int x=g-1;x>=0;x--){
        if(c[x]>=10)printf("%c",c[x]+'A'-10);
        else printf("%d",c[x]);
    }
    return 0;
}

变量名都该得相同了。。。。

2024/1/18 11:14
加载中...