praca - programy

michal422

praca - programy

Post autor: michal422 »

Mam do wykonania kilka programów mogą być napisane w pseud kodzie,tylko jest mały problem bo w ogolę nie mam pojęcia jak je wykonać.Oto one:
1. Napisz program sumujący następujący szereg liczbowy 1 + 22 + 333 + 4444 + ... + 999999999.

2. Napisz program sumujący następujący szereg liczbowy 1 + 12 + 123 + 1234 + ... + 123456789.

3. Napisz program sumujący następujący szereg liczbowy 1 + 20 + 300 + 4000 + ... + 900000000.

4. Napisz program sumujący następujący szereg liczbowy 9 + 88 + 777 + 6666 + ... + 11111111.

5. Napisz program sumujący następujący szereg liczbowy 9 + 98 + 987 + 9876 + ... + 987654321.


Awatar użytkownika
steal
Użytkownik
Użytkownik
Posty: 1043
Rejestracja: 7 lut 2007, o 18:35
Płeć: Mężczyzna
Lokalizacja: Białystok|Warszawa
Podziękował: 6 razy
Pomógł: 160 razy

praca - programy

Post autor: steal »

Program 1 w języku C:

Kod: Zaznacz cały

unsigned int suma = 0;
unsigned int liczba,k;
	for(int i=1; i<10;++i){
		liczba = 0;
		k = 1;
		for(unsigned int j=1; k<i+1;j *= 10,++k)
			liczba +=  j*i;
		suma += liczba;	
}
Xitami

praca - programy

Post autor: Xitami »

Kod: Zaznacz cały

[1]
w=100; suma=1;
for(i=2; i<=9; i++) {
	s += i*(w-1)/9;
	w *= 10
}

[2]
w= suma= 0;
for(i=1; i<=9; i++) {
	s += w; 
	w = w*10 +i;
}
Mruczek
Użytkownik
Użytkownik
Posty: 1114
Rejestracja: 26 paź 2008, o 19:43
Płeć: Mężczyzna
Podziękował: 23 razy
Pomógł: 157 razy

praca - programy

Post autor: Mruczek »

Kod: Zaznacz cały

3.
long long s=0;
long long y=1;
for(int i=1; i<=9; i++){
s+=i*y;
y*=10;
}
michal422

praca - programy

Post autor: michal422 »

A czy ten trzecia algorytm może wyglądać tak??
3.
s:=0
l:=1?0
for i:= 2 to n do
for k:= 2 to i do
l:= 10*l
s:= s + l
pisz s
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

praca - programy

Post autor: matshadow »

To rozwiązanie jest trochę cwaniackie, ale możesz po prostu dać

Kod: Zaznacz cały

i=1+12+123+1234+12345+123456+1234567+12345678+123456789;
print i
Tonący brzytwy się chwyta
michal422

praca - programy

Post autor: michal422 »

Dziękuję za odp
Ale miał bym jeszcze jedno pytanie : miałem napisać procedurę przypisującą wartość True lub Fals.
True gdy suma składników liczby jest podzielna przez 3: np. mając liczbę 123 : 1+2+3=6, 6 jest podzielne przez trzy. Fals np . 122, 1+2+2=5 5 nie jest podzielne przez 3.

Spróbowałem napisać ten algorytm w 2 cz. wiem że jest on wykonany źle dlatego proszę was o ewentualne sugestie i poprawki jakie powinienem wnieść.
I cześć:

\(\displaystyle{ nr \xleftarrow{} 1}\)
\(\displaystyle{ liczba \xleftarrow{} 2}\)
while nr < n do
\(\displaystyle{ suma \xleftarrow{} 0}\)
if (liczba mod 3)=0
then \(\displaystyle{ suma \xleftarrow{} suma+1}\)
else \(\displaystyle{ nr \xleftarrow{} nr+1}\)
\(\displaystyle{ liczba \xleftarrow{} liczba+1}\)

II część
PROCEDURE liczba(k)
if (liczba mod 3) = 0
then return true
else return false


Z góry dziękuję za pomoc. Pozdrawiam:)
Xitami

praca - programy

Post autor: Xitami »

Kod: Zaznacz cały

suma_cyfr:=0
while liczba != 0
        suma_cyfr += liczba % 10
        liczba /= 10
wynik:=suma_cyfr MOD 3 == 0
michal422

praca - programy

Post autor: michal422 »

A czy mój algorytm jest mocno żle ???
Xitami

praca - programy

Post autor: Xitami »

Tak po prawdzie do nie do końca rozumiem twój zapis

Ale, ale, przecie żeby odpowiedzieć na pytanie wcale nie musimy sumować cyfr liczby bo...
michal422

praca - programy

Post autor: michal422 »

hmmm/...?? a niezrozumiały to od którego momentu,wiem że dla informatyka ten zapis może wydawać się dziwny ,niestety kazano nam pisać algorytmy w pseudokodzie.
ODPOWIEDZ