Gå til innhold

Anbefalte innlegg

hei jeg har et problem med oppg 1 (ja litt flaut)

 

oppgaven er som følger

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

 

Find the sum of all the multiples of 3 or 5 below 1000.

 

men det virker som jeg trenger litt forklaring hvorfor kjører koden min ut 266333 som ikke er svaret

 

           int b, los;
           int ansv=0;

           for (b = 0; b <= 1000; b++)
           {
               los = b * 3;
               if (los < 1000)
               {
                   Console.WriteLine(los);
                   ansv = ansv + los;
               }
               else
                   break;

               los = b * 5;
               if (los < 1000)
               {
                   Console.WriteLine(los);
                   ansv = ansv + los;
               }
           }
           Console.WriteLine("-----------------------------------");
           Console.WriteLine(ansv);
           Console.ReadKey();

 

Løsning

double b, los;
           double ansv=0;
           double tall=0.9876;

           for (b = 0; b <= 1000; b++)
           {
               los = b * 3;
               if (los < 1000)
               {
                   tall = b/5;

                   if ((int)tall == tall)
                   {
                   }
                   else
                   {
                       Console.WriteLine(los);
                       ansv = ansv + los;
                   }
               }
               else
                   break;

               los = b * 5;
               if (los < 1000)
               {
                   Console.WriteLine(los);
                   ansv = ansv + los;
               }
           }
           Console.WriteLine("-----------------------------------");
           Console.WriteLine(ansv);
           Console.ReadKey();

Endret av angeland89
Lenke til kommentar
Videoannonse
Annonse

Hehe.

Ser du går i noen feller i koden din. Blant annet er int / int = int. Så å caste til int vil ikke ha noen effekt (det er allerede int).

Det ser ut til at du antok at resultatet var et flyttall, som ville vært korrekt dersom du delte på 3.0 eller 3f (førstnevnte er double, sistnevnte er float).

 

% operatøren er modulo, som gir rest etter en deleoperasjon.

 

Så 5 % 2 = 1 (fordi 5 / 2 er 2 med 1 i rest).

Lenke til kommentar

Hehe.

Ser du går i noen feller i koden din. Blant annet er int / int = int. Så å caste til int vil ikke ha noen effekt (det er allerede int).

Det ser ut til at du antok at resultatet var et flyttall, som ville vært korrekt dersom du delte på 3.0 eller 3f (førstnevnte er double, sistnevnte er float).

 

% operatøren er modulo, som gir rest etter en deleoperasjon.

 

Så 5 % 2 = 1 (fordi 5 / 2 er 2 med 1 i rest).

 

ja hehe løste den int int feilen ved å kjøre alt i double, glemte å skrive det på løsn

 

men modulo har jeg ikke brukt, viste ikke om den en gang, fiffig liten sak.

dette ble løsningen

 

double b, los;
           double ansv=0;
           double tall=0;

           for (b = 0; b <= 1000; b++)
           {
               los = b * 3;
               if (los < 1000)
               {
                   tall = b/5;

                   if ((int)tall == tall)
                   {
                   }
                   else
                   {
                       Console.WriteLine(los);
                       ansv = ansv + los;
                   }
               }
               else
                   break;

               los = b * 5;
               if (los < 1000)
               {
                   Console.WriteLine(los);
                   ansv = ansv + los;
               }
           }
           Console.WriteLine("-----------------------------------");
           Console.WriteLine(ansv);
           Console.ReadKey();

Endret av angeland89
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...