gpt4 book ai didi

java - 如何使用带变量的方法?

转载 作者:行者123 更新时间:2023-11-30 09:27:08 25 4
gpt4 key购买 nike

Targer - 需要计算有多少个 6 位数的左右 3 位数之和相同

做了什么 - 准备了3个方法:

1-st - 计算数字左 3 位数的总和 - 工作正常

private static int counterLeft3(int i) {
int digitCounter=0;
int summLeft3=0;
while (digitCounter!=3){
summLeft3=summLeft3+(i%10);
i=i/10;
digitCounter++;
}
return summLeft3;
}

2-nd - 从数字中计算右 3 位数字的总和 - 工作正常

 private static int counterRight3(int i) {
int summRight3=0;
int buffer;
int counter=0;
while (counter!=3){
summRight3=summRight3+(i%10);
i=i/10;
counter++;
}
buffer =i;
summRight3=0;
while (buffer!=0){
summRight3=summRight3+(buffer%10);
buffer=buffer/10;
}
return summRight3;
}

3-dr - 循环计数数字的数量 - 总是返回 0。thnink - 我的错误 thomthing 在这里:

private static void summCounter() {
int counter=0;
for (int i=111110; i<1000000; i++){
if (counterRight3(i)==counterLeft3(i)){
}
counter = counter++;
}
System.out.println("Q-ty is " + counter);
}

调试 -示例

enter image description here

第一种方法的结果

enter image description here

第二种方法的结果

enter image description here

问题 - 第三种方法有什么问题,为什么它总是只返回 0 而计数器从不增加?

最佳答案

在您的第三方法中,赋值:-

counter = counter++;

counter 值没有影响。完成此赋值后,counter 仅保持为 0。您需要删除分配部分,并且只有 increment 部分:-

counter++;

只有当左右总和相等时,您才需要在 if block 中进行递增。

另见:-

关于java - 如何使用带变量的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14715513/

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