提交记录 #517
提交时间:2025-01-03 18:38:40
语言:c
状态:Unaccepted
编译情况:编译成功
code.c: In function ‘main’:
code.c:65:10: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[100000]’ [-Wformat=]
65 | scanf("%s",&yuan);
| ~^ ~~~~~
| | |
| | char (*)[100000]
| char *
固定测试点#1:
固定测试点#2:
固定测试点#3:
额外测试点#216:
H17【选做•同学出题】动手实现Base64算法
#include<stdio.h>
#include<math.h>
#include<string.h>
char jiami[10000];
char dic[65]={"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"};
int erjinzhi[1000000]={0},p=0,jiamishu[100000];
void change(int num)
{
int k=p+7;
while(k>=p)
{
erjinzhi[k]=num%2;
num/=2;
k--;
}
p+=8;
}
int chongpai(int g)
{
while(g%3!=0)
{
p+=8;
g++;
}
while(p%6!=0)
{
p++;
}
int k=0,m=0,n=0;
while(k<p)
{
jiamishu[n]+=erjinzhi[k]*pow(2,5-m);
m++;
k++;
if(m==6)
{
m=0;
n++;
}
}
return n;
}
void Jiami(int n,int g)
{
for(int i=0;i<n;i++)
{
jiami[i]=dic[jiamishu[i]];
}
for(int i=n-1;i>=n-g;i--)
{
if(jiami[i]=='A')
{
jiami[i]='=';
}
else
{
return;
}
}
}
int main()
{
char yuan[100000];
scanf("%s",&yuan);
for(int i=0;i<strlen(yuan);i++)
{
int num=yuan[i];
change(num);
}
int g=strlen(yuan);
int n=chongpai(g);
Jiami(n,3-g%3);
printf("%s\n",jiami);
return 0;
}