» »

[Java]Naloge iz zank

[Java]Naloge iz zank

SkIDiver ::

Mam eno manjšo težavico pri dveh nalogah-ne vem kako se lotit zadeve. Gre pa zadeva o zankah oz loopih.

1. primer

Napiši program, ki prikaže iz česa je suma sestavljena od 1 do n za vsak n od 1 do 50. Program izpiše 1,3(suma 1 in 2), 6(suma 1,2 in 3) in tako naprej.

Izpis naj bi izgledal nekako takole:

sum 1 = 1
sum 1+2=3
sum 1+2+3=6
sum 1+2+3+4=10


2. primer

Napiši program, ki izpiše vsako perfektno število od 1 do 1000. Perfektno število je suma, ki se deli z vsemi svojimi sestavnicami sume. Na primer 6 je perfektno število, ker se deli z 1, 2 in 3.

OwcA ::

Osnovna ideja je pri obeh nalogah enaka. Uporabiti moraš gnezdeno zanko. Zunanja (recimo da tu uporabimo števec i) gre od 1 do n, notranja (števec j) pa od 1 do i.

Pri drugi nalogi, v kolikor nimaš kakšne boljše (matematične) ideje, na vsakem koraku še malo pofiltriraš.
Otroška radovednost - gonilo napredka.

kopernik ::

Daj, poskusi vsaj nekaj sam narediti. Prva naloga je res trivialna, ena for zanka ...

SkIDiver ::

Hm. Bom se malo posvetil popoldne! Naprej me čakata dve novi poglavji.

SkIDiver ::

Je mogoče možna kakšna elegantnejša rešitev teh if zank? Logični operatorji ne potegnejo pr tej zadevi al jih pa jz narobe uporabljam?

Zadeva pa more bit brez arrays, ker delam po knigi in ta šele sledijo!

public class StringVowels{
	
	public static void main(String[] args){
		
		String volwel="Event Handlers is dedicated to making your event a 
                        most memorable one.";
		int count=0;
		char cha='0';
		
		for(int i=0;i<volwel.length();i++){
			
			cha=volwel.charAt(i);
			if(cha=='a')
			count++;
			if(cha=='e')
			count++;
			if(cha=='a')
			count++;
			if(cha=='i')
			count++;
			if(cha=='o')
			count++;
			if(cha=='u')
			count++;
			if(cha=='A')
			count++;
			if(cha=='E')
			count++;
			if(cha=='I')
			count++;
			if(cha=='O')
			count++;
			if(cha=='U')
			count++;
		}		
		System.out.println("Number of volwel is "+count);
	}
}

Zgodovina sprememb…

  • spremenil: SkIDiver ()

kopernik ::

Lahko popraviš takole (pazi, ni to nek biser optimizacije :D):
public static void main(String[] args){
		
		String vowel="Event Handlers is dedicated to making your event a 
                        most memorable one.";
                vowel = vowel.toLowerCase();
		int count=0;
		
		for(int i=0;i<vowel.length();i++){
			char c = vowel.charAt(i);
                        if("aeiou".indexOf(c) != -1)
                        {
                          count++;
                        }
		}		
		System.out.println("Number of volwel is "+count);

SkIDiver ::

Mam še dve pikantne.

Prva naj bi izpisovala števila takole;
1
2 3
4 5 6
7 8 9 10
....itd

Ampak men nekako ne gre in mi izpisuje takole. Ne sanja se mi od vraga kako povečat ustrezno zornjo mejo in spodnjo;

1
2 3
3 4 5
4 5 6 7
5 6 7 8 9
....itd

public class Stevila{
	
	public static void main(String[] args){
		
		int x=2;
		int n=1;
		int m;
		
		for(int y=0;y<9;++y){
			
			for(int i=n;i<x;++i){
				
				System.out.print(i+" ");
			}
			System.out.println();
			x=x+2;
			n=n+1;
		}
	}
}


In druga težava o kateri se mi pa bore malo sanja. Matematika;(

Izračunaj vrednosti funkcij cos x in (1+x)^(1/4).
Ustrezni vrsti za ti funkciji sta:

cos x = 1-(x^2/2!)+(x^4/4!)-(x^6/6!)+...+(-1)^n*(x^(2n)/(2n)!)+/-...   |x|<"neskončno" 
in
(1+x)^(1/4) = 1+(1/4)*x-(1*3/4*8)*x^2+(1*3*7/4*8*12)*x^3+(1*3*7*11/4*8*12*16)*x^4+...   |x|<=1  


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pomoč pri sestavi algoritma

Oddelek: Programiranje
369326 (8157) mihy11
»

programiranje krožek(pomoč)

Oddelek: Pomoč in nasveti
442757 (1745) Marat
»

[Python] Weighted random

Oddelek: Programiranje
121045 (885) FrEaKmAn
»

[algoritem] računanje vsote

Oddelek: Programiranje
182450 (2032) vres.ales
»

Problemi pri C++ programiranju...

Oddelek: Programiranje
363902 (3377) George

Več podobnih tem