???

P1143 进制转换

so?
by Po7ed @ 2024-01-14 09:17:39


你的这一行有问题,应该把这个改成那个
by slh123bc @ 2024-01-14 09:22:21


AC(经供参考) ```c # include <stdio.h> # include <string.h> int qiushijinzhi(int n,char* a) //第一个函数 { int b=1;int shijinzhi=0; for(int i=strlen(a)-1;i>=0;i--) { if(a[i]>='0'&&a[i]<='9') { shijinzhi=shijinzhi+(a[i]-'0')*b; b=b*n; } else { shijinzhi=shijinzhi+(a[i]-'A'+10)*b; b=b*n; } } return shijinzhi; } void zhuanhuan(int b_,int shijinzhi) //第二个函数 { int g=0; char d[17]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char f[1000]={"1"}; while(shijinzhi) { int n=shijinzhi%b_; shijinzhi=shijinzhi/b_; f[g]=d[n]; g++; } for(int i=g-1;i>=0;i--) { printf("%c",f[i]); } } int main () { int n;scanf("%d",&n); char a[1000];scanf("%s",a); int b_;scanf("%d",&b_); int shijinzhi=qiushijinzhi(n,a); //求转化十进制数 zhuanhuan(b_,shijinzhi); //求所需进制数 return 0; } ```
by timmyliao @ 2024-01-14 10:20:18


```cpp for(int i=l-1, k = 0;i>=0;i--, k++){ if(s[i]<='9'&&s[i]>='0') ans += (s[i]-'0') * pow(n, k);// 乘以权重再相加 else ans += (s[i]-'A'+10) * pow(n, k);// 进制的次方依次递增 } j.resize(100);// string j 时 j 为空,不能 j[++o] ```
by Sqj147 @ 2024-01-25 20:20:27


|