【发布时间】:2015-12-28 18:38:33
【问题描述】:
我正在编写一个程序来获取数字的整数平方根。 我的代码:
import java.util.Scanner;
public class IntRoot{
public static void main(String[] args){
int num;
System.out.print("Enter a non-negative integer: ");
Scanner sc = new Scanner(System.in);
num = sc.nextInt();
int i;
int y=1;
for (i=1; num>=i+(i+2); i +=2){
++y;
}
System.out.print(y);
}
}
程序应该一次加一个奇数正整数 (1+3+5+7+...),直到下一个和小于或等于 num,然后计算奇数的个数以给出整数平方根(并打印该数字)。
例如。 12 的整数平方根为 3,因为 1+3+5 = 9,和中有 3 个奇数
目前我的程序没有打印正确的数字。 "i" 应该从 1 开始,每次增加 2。这个 for 循环将重复直到“i”的下一个总和大于“num”,并且“y”每次都会增长 1,以给出“i”增长的次数。所以如果输入是7,“i”应该在y=2时停止,同样,如果输入是4,i应该在y=2时停止,如果输入是49,i应该在y=7时停止。
我的代码有问题吗?还是我的逻辑?
【问题讨论】:
标签: java for-loop integer root