18. oktober 2002 - 19:06
Der er
14 kommentarer og 1 løsning
2 int?!
Er det muligt og læg 2 int ved siden af hinanden altså int 1 og int 2 = 12?! Eller SKAL man konvertere dem til String og læg dem sammen og så konverterer til int igen!! ;)
Annonceindlæg fra Academic Work Denmark A/S
18. oktober 2002 - 19:12
#1
int tal1=1; int tal2=2; int ny = tal1*10 + int2; nu er ny = 12 :-)
18. oktober 2002 - 19:19
#2
Hej disky igen, Ja det virker kun hvis jeg ved hvad er tal1 og tal2 men problemet er at de 2 int er ukendt?! ;-)
18. oktober 2002 - 19:46
#3
For at generalisere det skal du kende antal cifre i tal2. Altså: int tal1 = 123; int tal2 = 4567; int scale = 10; while(scale < tal2) scale *= 10; int tal = tal1 * scale + tal2;
18. oktober 2002 - 19:51
#4
Ovenstående bør naturligvis ikke bruges med negative tal ! :-)
18. oktober 2002 - 19:51
#5
arme_v hvad så hvis scale > tal2 ? altså tal1 og tal2 er 2 cifre int!
18. oktober 2002 - 19:52
#6
tal1 og 2 bliver aldrig negative.
18. oktober 2002 - 19:55
#7
Spørgsmå ikke forstået. tal2=2 => scale=10 tal2=17 => scale=100 tal2=831 => scale=1000 Det burde virke med 1,2,3,4,5,6,7,8 cifrede tal.
18. oktober 2002 - 20:19
#8
prøv med: skulle være generisk, er dog ikke testet int tal1=1234; //eller noget andet int tal2=345; //eller andet float temp=tal2; while(temp>0) { tal1*=10; //lav plads til 1 ciffer temp/=10; //ryk et siffer ned } int resultat=tal1+tal2;
18. oktober 2002 - 20:26
#9
Disky - det bør virke hvis temp er int, men ikke når temp er float. 123 / 10 = 12.3 12.3 / 10 = 1.23 1.23 / 10 = 0.123 0.123 / 10 = 0.0123 Det varer meget længe inden den bliver 0 !
18. oktober 2002 - 20:28
#10
jeg vender tilbage lige snart jeg prøver koden inat.
18. oktober 2002 - 21:33
#11
Hmmm, jeg kan ikke huske hvorfor jeg valgte float: Denne her virker, har lige prøvet med forskellige sæt tal. p.s. husk at int har en begrænsning, brug evt. long eller BigInt int tal1=1234; //eller noget andet int tal2=1; //eller andet int temp=tal2; while(temp>0) { tal1*=10; //lav plads til 1 ciffer temp/=10; //ryk et siffer ned } int resultat=tal1+tal2;
21. oktober 2002 - 14:25
#12
yeah disky det virker men kan skriv lidt forklaring på hvad *= og /= betyder?! ellers virker det :-)
21. oktober 2002 - 14:42
#13
tal1*=10 er den korte udgave af tal1=tal1*10 altså jeg ganger indholdet af variable tal1 med 10 temp/=10 er den korte udgave af temp=temp/10 altså jeg dividerer værdien af variablen temp med 10
21. oktober 2002 - 14:50
#14
tak...
21. oktober 2002 - 14:59
#15
Min løsning kræver kun 1 division per gennemløb ikke 1 multiplikation + 1 division per gennemløb.
Kurser inden for grundlæggende programmering