gpt4 book ai didi

检查将两个数字的相应小数位相加是否在每个位置产生相同的值

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:13:00 25 4
gpt4 key购买 nike

我需要检查两个数字中十进制数字的垂直和是否在每个元素中都相同。

例如:Number1 = 153,Number2 = 345。分别相加小数位:

1 + 3 = 4
5 + 4 = 9
3 + 5 = 8

所以 153 和 345 不匹配。


但是如果 Number1 = 543 和 Number2 = 456:

5 + 4 = 9
4 + 5 = 9
3 + 6 = 9

数字和都是9,所以函数结果应该是true

似乎我需要使用模数和 while 循环?

任何输入将不胜感激!

最佳答案

使用伪代码,我相信它可以实现这样的事情。函数返回 0 = 假,1 = 真。我不确定 mod 是否是 C 函数,但由于您只要求“类 C”,我认为它应该足够了。

int compare(int a, int b)
{
int compareTo = -1;
while(a > 0 && b > 0)
{
int temp = (a mod 10) + (b mod 10);
if (compareTo == -1)
{
compareTo = temp;
}
else
{
if (compareTo != temp)
return 0;
}
a /= 10;
b /= 10;
}
return 1;
}

根据@Peter 的评论进行编辑:

unsigned int compare(unsigned int a, unsigned int b)
{
unsigned int compareTo = (a % 10) + (b % 10);
a /= 10;
b /= 10;
while(a > 0 && b > 0)
{
unsigned int temp = (a % 10) + (b % 10);

if (compareTo != temp)
return 0;

a /= 10;
b /= 10;
}
return 1;
}

关于检查将两个数字的相应小数位相加是否在每个位置产生相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45743390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com