gpt4 book ai didi

c - 我的程序停止循环,我不明白为什么

转载 作者:行者123 更新时间:2023-11-30 17:35:54 26 4
gpt4 key购买 nike

如果用户输入“值”为 1223445,则输出应如下所示:

更改#1 后:12235更改#2 后:135

该代码的目的是取出两个具有相同值的连续数字。第一个循环有效,但随后停止了,我不明白为什么。这是代码:

{

int count;
int y;
int z;
int b;
int c;
int d;
int a;
int ct;
y = 0;
z = 1;
d = 0;
count = 0;
if (value > 0)
while ((z * 10 + z) != (y % 100))
{
y = value % 10 + y * 10;
z = y % 10;
value /= 10;
count = count + 1;
}
value = value * pow(10, count - 2);
y = y / 100;
count = count - 3;
while(y > 0)
{
b = y % 10;
c = pow(10, count);
d = d + c * b;
y = y / 10;
count = count - 1;
}
value = value + d;
ct = 1;
printf("After change #%d: %d\n", ct, value);
a = value;
while (a > 1)
{
if((a % 100) - (a % 10) - (10 * (a % 10)) == 0)
Change(value);
else
a = a / 10;
}
return;
}

最佳答案

这是一个简单的解决方案:(不确定您要如何处理奇数重复,例如“111”、“11111”)

    public static long strip(long value, long sum) {
if(value==0) return sum;

long tens = value % 100;
long ones = value % 10;
if(ones*10 == tens-ones) {
return strip(value /100, sum);
}

if(sum==0) sum +=(value%10);
else {
long x = (long)Math.ceil((Math.log10(sum)));
sum =(long) (Math.pow(10,x) * ones + sum);
}
return strip(value /10, sum);
}

关于c - 我的程序停止循环,我不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22849511/

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