主要就是一个数字往字符串转换,不知道为啥ultoa()函数用不了,所以自己写了一个
#include <iostream>
#include <cstring>
#include <cstdio>
static int myultoa_(long long n,char str[]);
void myultoa(long long n,char str[]);
static int i = 0;
int main(void)
{
long long n1,n2;
int D1,D2;
char s1[20],s2[20];
int t1[9] = {0},t2[9] = {0};
scanf("%lld %d %lld %d",&n1,&D1,&n2,&D2);
myultoa(n2,s2);
myultoa(n1,s1);
unsigned int index = 0,j = 0;
long long PA = 0, PB = 0;
while (index < strlen(s1) || j <strlen(s2))
{
if (index < strlen(s1)) t1[s1[index++] - '0']++;
if (j < strlen(s2)) t2[s2[j++] - '0']++;
}
while (t1[D1]--) PA = PA * 10 + D1;
while (t2[D2]--) PB = PB * 10 + D2;
printf("%lld",PA+PB);
return 0;
}
static int myultoa_(long long n,char str[])
{
if (n / 10) myultoa_(n / 10,str);
str[i++] = n % 10 + '0';
return i;
}
void myultoa(long long n,char str[])
{
int t = myultoa_(n,str);
i = 0;
str[t] = '\0';
}
突然想到在转换的时候就可以存入表中计算个数,那应该代码量会更少一点