2009-12-10, 23:38
  #13
Medlem
claxors avatar
Citat:
Ursprungligen postat av Emerain
sen är ett tips att du bara behöver testa talen som är mindre än kvadratroten ur talet du vill kolla. dvs om du vill kolla x så behöver du bara kolla talen som är mindre än Math.sqrt(x)

Mindre än eller lika med, annars blir det trist!
edit: du skrev det där nere, skit i vad jag sa
visserligen går det snabbare att helt enkelt lagra alla primtal du hittat hittills i en array, så behöver du endast testa om de delar talet du vill testa.
__________________
Senast redigerad av claxor 2009-12-10 kl. 23:41.
Citera
2009-12-11, 01:11
  #14
Medlem
Jag hade använt mig av Eratosthenes såll.
http://sv.wikipedia.org/wiki/Eratosthenes_s%C3%A5ll

Citera
2009-12-11, 07:48
  #15
Medlem
claxors avatar
Citat:
Ursprungligen postat av Larsson85
Jag hade använt mig av Eratosthenes såll.
http://sv.wikipedia.org/wiki/Eratosthenes_s%C3%A5ll


Nackdelen där är väl att du får svårt att veta i förväg hur många primtal du räknar ut. Kan va osmidigt om du som TS endast vill räkna ut de 10 första.
Citera
2009-12-11, 19:03
  #16
Medlem
truperts avatar
Försöker mig på att räkna lite med procent. Jag sitter just nu med följande kod, som fungerar:

Kod:
int pris = 19, max = 50;
double procent;
	          
procent = ((double)pris/max)*100;
System.out.print((int)procent);

Det måste ju gå att göra på något smidigare sätt? Gör om procent till int på slutet för att få ut svaret utan decimalen.
Citera
2009-12-11, 19:42
  #17
Medlem
AquaRegias avatar
Citat:
Ursprungligen postat av trupert
Försöker mig på att räkna lite med procent. Jag sitter just nu med följande kod, som fungerar:

Kod:
int pris = 19, max = 50;
double procent;
	          
procent = ((double)pris/max)*100;
System.out.print((int)procent);

Det måste ju gå att göra på något smidigare sätt? Gör om procent till int på slutet för att få ut svaret utan decimalen.

Vill du inte ha decimaler så behöver du väl inte använda double över huvud taget? Dvs:

Kod:
System.out.print((pris*100)/max);

EDIT: Vill du använda procent flera gånger så kan du skriva en metod för det, om det inte redan finns vill säga, det kanske du ska kolla upp först

Kod:
public static void main(String[] args)
{
    System.out.print(percent(21, 43));
}

public static int percent(part, max)
{
    return (part*100)/max;
}
__________________
Senast redigerad av AquaRegia 2009-12-11 kl. 19:46.
Citera
2009-12-11, 19:44
  #18
Medlem
Spejnars avatar
Eller kolla på klasserna NumberFormat och DecimalFormat.

http://java.sun.com/j2se/1.4.2/docs/...berFormat.html
http://java.sun.com/j2se/1.4.2/docs/...malFormat.html
Citera
2009-12-11, 19:51
  #19
Moderator
Ruskigbusss avatar
*Klistrar*

Och sammanfogar lite trådar.

/Mod
Citera
2009-12-11, 21:08
  #20
Medlem
truperts avatar
Citat:
Ursprungligen postat av AquaRegia


Vill du inte ha decimaler så behöver du väl inte använda double över huvud taget? Dvs:

Kod:
System.out.print((pris*100)/max);
System.out.print((pris/max)*100) - Försökte jag med, alltså:
(19/50)*100 = 0.38*100 = inte okej eftersom decimalerna försvinner om jag bara kör int. Ditt sätt blir ju självklart helt rätt!
(19*100) = 1900/50 = 38. Att jag inte bara tänkte på att flytta runt talen då!
Ditt sätt är ju hundra gånger enklare och snyggare. Tack så mycket!


Citat:
Ursprungligen postat av AquaRegia

EDIT: Vill du använda procent flera gånger så kan du skriva en metod för det, om det inte redan finns vill säga, det kanske du ska kolla upp först

Kod:
public static void main(String[] args)
{
    System.out.print(percent(21, 43));
}

public static int percent(part, max)
{
    return (part*100)/max;
}
Ska kolla på det där.


Citat:
Ursprungligen postat av Spejnar
Eller kolla på klasserna NumberFormat och DecimalFormat.

http://java.sun.com/j2se/1.4.2/docs/...berFormat.html
http://java.sun.com/j2se/1.4.2/docs/...malFormat.html

Tackar tackar, har jag att göra en stund här på kvällen!
Citera
2009-12-13, 23:31
  #21
Medlem
Buffazs avatar
Vet inte vad jag gör fel

Har försökt på flera sätt att komma ur denna loop, men kommer inte till slutresultatet. nu har jag försökt en while loop där en boolean bestämmer om jag fortsätter, men om min boolean blir false så kommer jag fortfarande inte till slutet.. jag är säkert helt fel på den, men kan nån ge en hint till vad som är fel

Kod:
import static javax.swing.JOptionPane.*;
import java.util.*;

public class 
Medel {
public static 
void main (String[] arg) {

    
String s;
    
int number;
    
int turn 1;
    
int total 0;
    
double result 0;
    
boolean end true;

while (
end true) {
showInputDialog ("Ange heltal nummer " turn); 
    
number Integer.parseInt(s);

Scanner sc = new Scanner(s);


    
sc.hasNextInt();
    
int i sc.nextInt();

    
total total i;
    
turn turn 1;
    
result = (double)total / ((double)turn 1);

    }

    if (
end false && result 0) {
    
showMessageDialog(null"Medelvärdet av dina " + (turn 1) +
                        
" tal är" "\n" result); 
    }
    if (
end false && result == 0) {
    
showMessageDialog(null"Du har inte skrivit några tal!"); 
}

Citera
2009-12-13, 23:40
  #22
Medlem
AquaRegias avatar
Citat:
Ursprungligen postat av Buffaz
Har försökt på flera sätt att komma ur denna loop, men kommer inte till slutresultatet. nu har jag försökt en while loop där en boolean bestämmer om jag fortsätter, men om min boolean blir false så kommer jag fortfarande inte till slutet.. jag är säkert helt fel på den, men kan nån ge en hint till vad som är fel

Kod:
import static javax.swing.JOptionPane.*;
import java.util.*;

public class 
Medel {
public static 
void main (String[] arg) {

    
String s;
    
int number;
    
int turn 1;
    
int total 0;
    
double result 0;
    
boolean end true;

while (
end true) {
showInputDialog ("Ange heltal nummer " turn); 
    
number Integer.parseInt(s);

Scanner sc = new Scanner(s);


    
sc.hasNextInt();
    
int i sc.nextInt();

    
total total i;
    
turn turn 1;
    
result = (double)total / ((double)turn 1);

    }

    if (
end false && result 0) {
    
showMessageDialog(null"Medelvärdet av dina " + (turn 1) +
                        
" tal är" "\n" result); 
    }
    if (
end false && result == 0) {
    
showMessageDialog(null"Du har inte skrivit några tal!"); 
}


Kod:
while (end = true) { 

till

Kod:
while (end == true) { 
Citera
2009-12-13, 23:46
  #23
Medlem
Buffazs avatar
Citat:
Ursprungligen postat av AquaRegia
Kod:
while (end = true) { 

till

Kod:
while (end == true) { 

har testat det, och också ändrat slutet till

Kod:
if (end == false && result 0) { 

men kommer fortfarande inte fram till att få en dialogbox på slutet, får bara att fel när jag klickar på cancel
Citera
2009-12-14, 00:57
  #24
Medlem
Citat:
Ursprungligen postat av Buffaz
har testat det, och också ändrat slutet till

Kod:
if (end == false && result 0) { 

men kommer fortfarande inte fram till att få en dialogbox på slutet, får bara att fel när jag klickar på cancel

Jag förstår inte din kod riktigt. Du har en while loop som fortsätter tills end blir false, men var ändrar du värdet på end?
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in