[英]How do i recognize 2 digits as separated digits?
所以基本上作业说我需要从用户那里得到一个数字 'n' 并且对于 1 到 'n' 之间的所有数字,程序将打印所有除以 3的数字而没有残留&&仅打印两者(或一)他们的数字等于或小于 5 ,例如,如果用户给 22 程序打印3,12,21
。
这就是我现在所做的(我打问号的地方是我很难弄清楚该怎么做)所以这段代码还没有编译:
public static void main(String[] args) {
Scanner get = new Scanner(System.in);
int num;
System.out.println("Enter A Random Number: ");
num = get.nextInt();
for (int i=1;i>0 && i<=num;i++) {
if (i%3==0 && ?)
System.out.println(i);
我对你问题的第二部分有点困惑,但基于第一部分和我从第二部分得到的内容(应该只打印等于或小于 5 的数字的数字总和)这里是您程序的代码:(它应该可以完美运行,如果您发现任何问题,请更新我)
public static void main(String[] args) {
Scanner get = new Scanner(System.in);
int num;
System.out.println("User please enter a number of your choice : ");
num = get.nextInt();
for(int x = 1 ; x < num ; x++){
String number = ""+ x ;
int sum = 0 ;
for(int i = 0 ; i < number.length() ; i ++ ){
sum +=number.charAt(i)-'0' ; }
if(x % 3 == 0 && sum <= 5){
System.out.println(x) ; }
sum = 0 ;
}
}
这会做。 因此,您必须遍历每个数字,因此,我将其转换为字符串,然后在该字符上匹配 1 到 5 的正则表达式,然后将其放回另一个字符串中并解决它。
public static void main(String[] args) {
Scanner get = new Scanner(System.in);
int num;
System.out.println("Enter A Random Number: ");
num =Integer.parseInt(get.nextLine());
for(int i =1;i<=num; i++){
if(i%3==0){
String input = Integer.toString(i);
String toPrint = "";
for(int j =0 ; j<input.length();j++){
if(Character.toString(input.charAt(j)).matches("^[1-5]$")){
toPrint+=Character.toString(input.charAt(j));
}
}
//check the length to avoid cases like 30,60 etc.
if(input.length()==toPrint.length()){
System.out.println(toPrint);
}
}
}
}
除以 3 无余数
如果您了解“无残留”的含义,那么我假设您熟悉模运算。 在编程中,我们有模运算符%
,它返回除法的余数。 所以25 % 8
计算结果为1
。 您可以使用它来获取21 % 10
评估为1
的数字的数字,这正是个位数。 要得到十位数字,我们需要先除以 10,然后21 / 10 % 10
计算结果为 2。这是有效的,因为整数除法会丢弃余数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.