gpt4 book ai didi

c - C 中分割数字的总和

转载 作者:行者123 更新时间:2023-11-30 16:43:34 25 4
gpt4 key购买 nike

我想将给定的数字(6位数字)增加1后分成2个数字(每个数字3位),然后将前3位数字和后3位数字相加,并检查总和是否匹配,再次执行该过程,最后返回前3位和后3位之和相等的数字。
我的代码分割了数字,但最后 3 位数字以某种方式反向打印(这不是问题,因为我只想要它们的总和)但当我尝试对每 3 位数字求和时,问题就出现了。

    int onceInATram(int x) {
// Complete this function
int n = 0;
int y = 0;
int len = 0;
int digit = 0;
int t1 = n;
int t2 = y;
int reminder1 = 0;
int reminder2 = 0;
int sum1 = 0;
int sum2 = 0;

len = (int) floor(log10(abs(x))) + 1;

do {
n = x + 1; // to add 1 to the number
while ((floor(log10(abs(n)) + 1) > len / 2)) { // split it by half
digit = n % 10;
n = n / 10;
y = (y * 10) + digit;
}

int l = 3;
while (l--) {
reminder1 = t1 % 10;
sum1 = sum1 + reminder1;
t1 = t1 / 10;

reminder2 = t2 % 10;
sum2 = sum2 + reminder2;
t2 = t2 / 10;
}

} while (sum1 != sum2);


//return(printf("%d\n%d\n", n, y)); // for debugging
return printf("%d%d\n", n, y); // '' ''
//return printf("%d\n", sum1); // '' ''
}

int main() {
int x;
scanf("%i", &x);
int result_size;
char* result = (char *) onceInATram(x);
printf("%s\n", result);
return 0;
}

我使用了函数,但似乎没有任何作用!

我的输入:555555

我的输出:555655 > 与 555556 相同(增加 1 但反转最后 3 位数字)。

预期输出:555564(前 3 位数字之和 == 最后 3 位数字)。

最佳答案

我重新编写了它,以使其变得更简单、更直接。

我想出了这个:

IDEOne Link:

#include <float.h>
#include <math.h>
#include <stdlib.h>

int onceInATram(int n) {
int y = 0;
int x = 0;
int t1 = n;
int t2 = y;
int reminder1 = 0;
int reminder2 = 0;
int sum1 = 0;
int sum2 = 0;


do {
n = n + 1; // to add 1 to the number
y = n % 1000; // This is the first 3 numbers
x = n / 1000; // This is the last 3 numbers

printf("%d is now split into %d and %d\n", n, x, y);

t1 = x;
t2 = y;
sum1 = 0;
sum2 = 0;
for(int l=0; l<3; ++l) {
reminder1 = t1 % 10;
sum1 = sum1 + reminder1;
t1 = t1 / 10;

reminder2 = t2 % 10;
sum2 = sum2 + reminder2;
t2 = t2 / 10;
}
} while (sum1 != sum2);


return 1000*x+y;
}

int main() {
int x;
scanf("%d", &x);
int result = onceInATram(x);
printf("The Final Answer is %d\n", result);
return 0;
}
<小时/>

输入/输出示例:

123456
The Final Answer is 123501

因为1 + 2 + 3 == 6 == 5 + 0 + 1

关于c - C 中分割数字的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45151004/

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