PAT 乙级 1022 D进制的A+B
2023-12-21 14:12:56
解题思路:这题你可以利用数组,或者用栈最好,去存储各个位 我利用了栈。
c语言版本:由于c没有自己的数据结构,需要自己写栈,略显麻烦一点
#include<stdio.h>
#define N 32
typedef struct
{
int a[N];
int top;
}stack;
int set_stack(stack *s)
{
s->top=-1;
}
int push(stack *s,int n)
{
if(s->top==N-1)
return 0;
else
s->a[++s->top]=n;
}
int pop(stack *s)
{
if(s->top==-1)
return -1;
else
return s->a[s->top--];
}
int main()
{
int a,b,c,digit;
stack s;
scanf("%d %d %d",&a,&b,&digit);
c=a+b;
set_stack(&s);
do
{
push(&s,c%digit);
c=c/digit;
}while(c!=0);
while((c=pop(&s))!=-1)
{
printf("%d",c);
}
printf("\n");
}
python版本:我们利用列表的append方法和pop方法刚好可以组成栈 方便好多。
s=input().split()
a=eval('+'.join(s[0:2]))
digit=int(s[2])
s.clear()
if a==0 :
print(a)
else:
while(a!=0):
s.append(a%digit)
a=a//digit
for i in range(len(s)):
print(s.pop(),end='')
print()
确实能看出python慢。。。
文章来源:https://blog.csdn.net/qq_44063802/article/details/135127664
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!