Money - Изпитна задача, Programming Basics

Money - Изпитна задача, Programming Basics

ItsoDimitrov avatar ItsoDimitrov 28 Точки

Money - Изпитна задача, Programming Basics

Здравейте ! 

Нещо не ми е ясна тази задача и ако може малко помощ . 

Не схващам как се получава числото, което съм оградил в червено - http://imgur.com/a/YEEgq . 

Втората изпитна задача я реших г/д без проблем, а с първата какво става ...

MHADZHIEVA avatar MHADZHIEVA 1 Точки

Здравейте!

Имам проблем с тази задача на Java. Judge ми дава само 16 точки, тъй като има разлика в закръглянето.

import java.util.Scanner;

public class money {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);

        int Onebitcoin = 1168;
        double oneChineseYuan = 0.15;
        double OneDollar = 1.76;
        double OneEuro = 1.95;


        double bitcoins = Double.parseDouble(console.nextLine());

        double chineseYuan = Double.parseDouble(console.nextLine());

        double commission = Double.parseDouble(console.nextLine());


        bitcoins = bitcoins * Onebitcoin;
        chineseYuan = oneChineseYuan * chineseYuan;
        chineseYuan = chineseYuan * OneDollar; ;

        bitcoins = bitcoins + chineseYuan;
        bitcoins = bitcoins / OneEuro;

        commission = bitcoins * commission / 100;

        double result = bitcoins - commission;
        System.out.println(result);

    }
}

0
NedNikolov avatar NedNikolov 46 Точки

Здравей,

    Имам същия проблем, решавах задачата и при използване на double ми изкарва 16/100, а при използване на BigDecimal ми дава 8/100. Някой да е изкарал 100/00, но на Java? При C# като си използвам с double ми дава 100 точки, а аз приграмирам на Java и наистина искам да рабера къде е проблема при тази елементарна задача.

0
MartinBG avatar MartinBG 586 Точки

И аз не успях да нагодя решение с Java, което да бъде приемливо за Judge.

Както отбелязаха и колегите по-горе, проблемът е породен от начина на закръгляне на реални числа в Java, който е различен от този в C# (форматът, който очаква Judge за тази задача).

Има и други подобни задачи в минали изпити. Да се надяваме, че всичко ще е точно, за изпита през март! :)

1
boriskostoff avatar boriskostoff 0 Точки

Ехо, банда.

Тъкмо досега си блъсках главата с тази задача. Не ми се получава просто защото не я решавам правилно чисто математически (макар тази с валута от урок 2.1 да ми се получи от първия път).

Някой би ли бил така добър да ми разясни самата логика на конвертиране?

0
vboteva avatar vboteva 4 Точки

ето решение на Java 100/100 точки:

https://pastebin.com/RGYXkfbH

Логиката е следната: трябва да се конвертират валутните двойки една по една, така че да се стигне до една и съща валута накрая. В случая аз ги конвертирах до лева и чак накрая в резултата ги превърнах в евро.

1