help
于老师觉得于龙加法还不够刺激,于是又设计了于龙减。两个非负整数的于龙减“A-B”的意义是:在A的所有数字中,凡是在B中出现的数字都划掉,A中剩下的数就是结果,如果不剩结果就是0。
于龙想编程解决于龙减问题,他能成功吗?
输入格式:
空格分隔的两个非负整数A和B。A最多是5位数,B最多是3位数。
输出格式:
一个整数。
输入样例:
12346 24
输出样例:
136
输入样例:
20032 20
输出样例:
3
输入样例:
123456
输出样例:
123
这个怎么写啊,没有思路,可以讲一下吗。 王小二° 发表于 2023-11-9 22:25
你好,这个代码通过不了
报了什么错? 这个问题可以通过以下步骤来解决:
1. 从输入中获取两个非负整数A和B。
2. 将A转换为字符串,并遍历字符串中的每个字符。
3. 对于每个字符,检查它是否在B中出现。如果出现,则将其从A中删除。
4. 将剩余的A转换回整数,并输出结果。
下面是一个实现这个算法的示例代码:
def yulong_subtraction(A, B):
A = str(A)
for digit in str(A):
if digit in str(B):
A = A.replace(digit, '')
return int(A)
# 读取输入
input_str = input("请输入两个非负整数A和B,用空格分隔:")
A, B = map(int, input_str.split())
# 调用函数并输出结果
result = yulong_subtraction(A, B)
print(result)
希望这个解决方案对你有帮助!如果你还有其他问题,请随时提问。 用C语言,越简单越好,谢谢 sh-5.2$ cat main.c
#include <stdio.h>
#include <string.h>
int main(void) {
char a, b;
scanf("%1023s%1023s", a, b);
int result = 0;
for(size_t i = 0; a; ++i) {
if(strchr(b, a) != NULL) continue;
result = result * 10 + (a - '0');
}
printf("%d\n", result);
return 0;
}
sh-5.2$ ./main
12346 24
136
sh-5.2$ ./main
20032 20
3
sh-5.2$ ./main
123 456
123
sh-5.2$
人造人 发表于 2023-11-9 01:17
你好,这个代码通过不了
页:
[1]