Java: Hjälp med udda addition och subtraktion

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Aug 2009

Java: Hjälp med udda addition och subtraktion

Hej!

Jag är verkligen en nybörjare och har som uppgift att göra addition och subtraktion på ett annorlunda sätt och jag har lite svårt att lista ut hur jag ska skriva det. Verkar inte hitta något på Google och börjar få väldigt dåligt med tid (ute i god tid som vanligt naturligtvis) så jag tänkte att jag testar att fråga här.

Jag behöver skriva en kalkylator som kan addera och subtrahera två nummer mellan 1 och 99 genom att ta två siffror i taget, till exempel om de två siffrorna är 77 och 38 ska den räkna 7+8 och få 15. Sedan ska den då räkna 70+30 och få 100 och tillsammans ska det bli 115.

Jag har då skrivit följande (inte hela koden):
println("Please enter the first value:");
value1 = readInt();
if (value1 >= 1 & value1 <= 99) {
println("Please enter the second value:");
value2 = readInt();
if (value2 >= 1 & value2 <= 99) {
println("The sum is " + value1 % 10 + "" + value2 % 10);}

Skriver jag exempelvis 25 på båda så ska svaret bli 10 men jag får istället 55. Sedan vet jag inte hur jag ska få loss det första numret i siffran.

Tips skulle uppskattas otroligt mycket, tack!

Stationär: Corsair Crystal 570X | EVGA Z170 Classified K | i7 6700K | EVGA GTX 1080 | Corsair Dominator Platinum 16GB | Custom Loop | Corsair HX750i | Creative Sound Blaster Zx
Kringutrustning: ASUS MG279Q & AOC q2770Pqu | Corsair Scimitar RGB | Corsair K70 LUX RGB | Philips Fidelio X2 | Samson Meteor | Apple MBPr 13"

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2007

@versions: Du är ute efter heltalsdivision för att få tiotalet, och du gör rätt som använder modulo för entalet.

Dvs. 25 / 10 = 2 rest 5 (heltalsdivsion ger dig alltid ett heltal).

Så i Java (ursäkta min java, det var länge sen jag skrev något i Java)

int input = 25 //Replace with what you need int decades = input / 10; //decades = tiotal. Dvs, här borde det bli 2. int singles = input % 10; //singles = ental. Här borde det bli 5.

Din kod ger 55. För du plockar entalet från båda siffrorna, dvs 5, och sedan lägger ihop dom som en sträng. Du vill nog lägga ihop själva siffrorna, så ändra raden till:

println("The sum is " + ((value1 % 10) + (value2 % 10)) );}

WS: Bärbar workstation, 2 * Dell U2412M
HTPC: Intel NUC, Canton GLE 496, Yamaha RV-A830, Sanyo PLV-Z700
Server: Intel Xeon E3-1240@3.4 GHz, ESXi, 32GB RAM, 8*2TB RAID-Z2 + SSD-cache
Slösurf: MacBook Air 11,6", Samsung S8
Kamera: Canon EOS 5DII + 1DIII, Canon 100/2.8 Macro, Canon 70-200/2.8L, Canon 24-70/2.8L

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2007

@ChristofferW: Lite får TS tänka själv, det är ju ganska grundläggande aritmetik Jag visade på det som TS hade problem med. Vi ska inte lösa typiska skoluppgifter, bara ge pekpinnar åt rätt håll.

/Z

WS: Bärbar workstation, 2 * Dell U2412M
HTPC: Intel NUC, Canton GLE 496, Yamaha RV-A830, Sanyo PLV-Z700
Server: Intel Xeon E3-1240@3.4 GHz, ESXi, 32GB RAM, 8*2TB RAID-Z2 + SSD-cache
Slösurf: MacBook Air 11,6", Samsung S8
Kamera: Canon EOS 5DII + 1DIII, Canon 100/2.8 Macro, Canon 70-200/2.8L, Canon 24-70/2.8L

Trädvy Permalänk
Medlem
Registrerad
Sep 2011

@zyberzero: My bad, ändrade om inte OP sett redan!