java - 打印数字 3 或 6 从 1 到 1000.like 3 ,6,13,16.....996 的数字,
问题描述
这是我的代码。当数值小于100时,输出正确,当数值为1000时,输出错误
import java.util.*;
public class Test {
public static void main(String args[]) {
int i,x,y,z,num;
int number=1;
for(;number<1000;number++) {
i=number;
while (i > 0) {
z=i%10; //System.out.println( "digit="+z);
if(((z%3==0)&&(z%9!=0)&&(z!=0))||(z%6==0)&&(z!=0)) //condition for divisiblity by 3 or 6 and not by 9
{
System.out.println( "number="+number);
break;
}
i = i / 10;
}
}
}
}
解决方案
这要短得多,而且更有意义。
for(int i = 0; i < 1000; i++){
String str = Integer.toString(i);
for(int j = 0; j < str.length(); j++){
if(str.charAt(j) == '3' || str.charAt(j) == '6')
System.out.println("nuber = "+ i);
}
}
推荐阅读
- asp.net-core - 为什么 OpenIdConnectHandler.HandleSignOutCallbackAsync 劫持对 SignedOutCallbackPath 的任何请求
- python - 如何在 pytorch-lightning 中使用 TensorBoard 记录器转储混淆矩阵?
- mysql - 从 mysql Ver 15.1 中的多个表进行组连接
- html - 是一种强制 Jekyll 帖子使用 markdown 格式并忽略 css 的方法
- mysql - 如何将 liquibase 连接到 AWS RDS Aurora MySQL 数据库
- ios - 斯威夫特:自动布局表现怪异
- authentication - 使用其 api 发送邮件时 sparkpost 的授权错误
- javascript - React Native Render Modal onMessage Firebase 通知
- r - Highcharts组合图与R中的动画
- bash - 尝试在 while-read 内解析并打印两个不同的值