Професионална програма
Loading...
+ Нов въпрос
jorjiniq avatar jorjiniq 0 Точки

Задача 2.Division Technology Fundamentals with Java - януари 2019

Здравейте, може ли някой да ми съдейства относно тази задача в Judje ми дава 70/100, пробвах различни варианти и не.. и не..последният тест нещо може би го бъркам.

https://pastebin.com/R9PzTELj

Благдрая предварително

0
Fundamentals Module
Teodora321 avatar Teodora321 1 Точки

Заповядай едно примерно решение, което е доста по-лесно лично за мен: https://pastebin.com/WjxMrHz9 

0
jorjiniq avatar jorjiniq 0 Точки

Благодаря 

0
Evuns avatar Evuns 34 Точки

Здравей, за да подобриш кода си първо -  в този случай не ти трябва "while". Проверяваш само едно число, няма нужда от цикъл. 2ро- не ти трябват отделни "if" проверки. Давай с "else if". На колежката кодът е чист, но " else if (num%6==0 || (num%2==0 && num%3==0))" - тук ||- то е напълно излишно, т.е. трябва да си остане само: " else if (num%6==0)". A ето и леко преработения ти код:

https://pastebin.com/kZtw9u9i

Мисля, че ти се чупи заради цикъла. Понеже той винаги си остава true. Ти не променяш входа и съответно, не влизаш в никоя от проверките, за да го break- неш, ако числото не се дели на нито едно от изброените.

0
jorjiniq avatar jorjiniq 0 Точки

Супер много благодаря 

0
VasilK avatar VasilK 40 Точки

Ето едно решение с масив. Всъщност масива доста улеснява.

import java.util.Arrays;
import java.util.Scanner;

public class Division {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int num = Integer.parseInt(scanner.nextLine());
        int[] ar = { 2,3,6,7,10 };
        int x = 0;

        for (int i = 0; i < ar.length; i++) {
            if (( num % ar[i] == 0 ) && ( ar[i] > x )) x = ar[i];
        }

        if (x == 0) System.out.printf("Not divisible");
        else System.out.printf("The number is divisible by %d", x);

    }
}

1
26/01/2019 17:36:34
jorjiniq avatar jorjiniq 0 Точки

Да така е,благодаря. 

0
ValeriST avatar ValeriST 16 Точки
import java.util.Scanner;

public class Division {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=Integer.parseInt(scanner.nextLine());

        if (n%10==0) {
            System.out.println("The number is divisible by 10");
        } else if (n%7==0) {
            System.out.println("The number is divisible by 7");
        } else if (n%6==0) {
            System.out.println("The number is divisible by 6");
        }else if (n%3==0) {
            System.out.println("The number is divisible by 3");
        }else if (n%2==0) {
            System.out.println("The number is divisible by 2");
        }else{
            System.out.println("Not divisible");
        }


    }

}

 

ето още едно,което е в пъти по-лесно....

0
Iskren.1990 avatar Iskren.1990 6 Точки

Готино решение колега, и аз се засилих с тази логика.

function rounding(num){

    let div = [10,7,6,3,2];

    for (i = 0; i <= 5; i++) {

        let a = div.shift();

        if (num % a === 0) {

           

            console.log(`The number is divisible by ${a}`);

            break;

        } else if (i === 5) {

            console.log(`Not divisible`)

        }

    }

}

0