黑马程序员技术交流社区
标题:
新手求大神解答
[打印本页]
作者:
leo_yang
时间:
2016-4-27 17:26
标题:
新手求大神解答
无标题.png
(200.4 KB, 下载次数: 35)
下载附件
2016-4-27 17:23 上传
一直不明白为什么程序运行后,中间会有那么多空行,而且发给同学的电脑上运行也是这样子,我的电脑运行其他程序都很顺利,没有这个问题,就这个会这样,求大神指教!!!!
作者:
何海
时间:
2016-4-27 17:26
你的第二个if语句是应该嵌套在第一个if语句里面的.
public class Demo {
public static void main(String[] args) {
int temp = 0;
for (int i = 1; i <= 100; i++) {
int sum = 0;
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
sum++;
}
}
if (sum < 3) {
temp++;
System.out.print(i + " ");
if (temp % 5 == 0) {
System.out.println();
}
}
}
System.out.println("素数有" + temp + "个");
}
}
作者:
leo_yang
时间:
2016-4-27 17:28
class Test4 {
public static void main(String[] args) {
int temp = 0;
for (int i=1;i<=100;i++){
int sum = 0;
for (int j=1;j<=i;j++){
if (i%j ==0){
sum ++;
}
}
if (sum < 3){
temp ++;
System.out.print(i+" ");
}
if (temp % 5 == 0){
System.out.println();
}
}
System.out.println("素数有"+ temp + "个" );
}
}
这个是程序
作者:
xiaoxiqq
时间:
2016-4-27 17:52
软件自动内置格式化,就是自动给你加空格的。这个加空格没什么关系的,美观性而已
作者:
sfz6012
时间:
2016-4-27 23:38
不错,计数器思想来解决素数个数
作者:
nannanziyu
时间:
2016-4-28 02:06
本帖最后由 nannanziyu 于 2016-4-28 02:59 编辑
原因很简单,就是你的temp%5==0;和第二个for循环在同一个层次,你的temp就算%5==0,在下一个素数前会一直是这个状态,而第一个for还要循环很多次才能碰到下一个素数中间改成这样就对了
if (sum < 3){
temp ++;
System.out.print(i+" ");
}else{
continue;
}
作者:
向前_KCmhn
时间:
2016-4-28 22:55
if (temp % 5 == 0){
System.out.println();
}
这个语句不应放在第二个for语句中.
因为当sum<3,temp%5 == 0时,该语句会循环3次, 故循环出3个空横行
应将该if语句 放在第一个for语句中.
作者:
我说三年
时间:
2016-4-30 19:39
领教了{:3_46:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2