digitalni zbir ?

digitalni zbir ?

offline
  • aszi 
  • Novi MyCity građanin
  • Pridružio: 01 Maj 2007
  • Poruke: 3

Kada u program unesemo neki broj npr. 8912 treba da se kao izlazni podatak daje zbir tih cifara tj. br.20 , pa opet digitalni zbir tih cifara tj. 2
Ima li neko ideju kako definisati taj zbir ???



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Đuro Glumac
  • dipl. ing. informatike
  • Pridružio: 08 Feb 2004
  • Poruke: 3640
  • Gde živiš: ApAtIn

Prva ideja je da uneti broj tretiras kao string. Zatim izdvajas znak po znak, konvertujes u broj i sabiras. S tim da ubacis proveru pre konvertovanja, da li je izdvojeni karakter cifra. Ukoliko nije, ispises da broj nije korektan.

Druga ideja je da odmah po unosu svake cifre hvatas unetu cifru i dodajes je sumi, tako sto bi izvrsavanje toga prestalo pritiskom npr. tastera enter.



offline
  • Pridružio: 26 Jul 2004
  • Poruke: 1472
  • Gde živiš: Vojvodina,Zrenjanin

Jel moze ovako:
#include<stdio.h> void main() {    int cifre=0,zbir=0;    printf("Unos broja: ");    while((cifre=getchar())!='\n') {       cifre-=48;       zbir+=cifre;    }    printf("\n\nZbir cifara je: %d",zbir); }

I da nije lose proveriti prvo da li je uneti broj cifra!To sam zaboravio Confused

offline
  • Pridružio: 16 Jun 2005
  • Poruke: 2392
  • Gde živiš: Beograd

int dz(int br){ int z=br,p; while(z%10!=0 || !z){ for(p=0;z;p+=z%10,z/=10); z=p;} return z;}

Evo moze ovako, verovatno moze i jednostavnije...

@LaserJat
Tvoje resenje ne moze (tj nije kompletno) jer ce ti naci samo zbir cifara, ali nece naci digitalni zbir. Npr. za ovaj broj 8912 tvoj rezultat ce biti 20, a ne 2 Wink

offline
  • Pridružio: 26 Jul 2004
  • Poruke: 1472
  • Gde živiš: Vojvodina,Zrenjanin

@Riddler
Znam.Racuna samo obican zbir cifara.To sam i hteo Wink

Zasto tvoj prog prihvata samo 8912?
A sta je uopste taj digitalni zbir? Confused

offline
  • Pridružio: 16 Jun 2005
  • Poruke: 2392
  • Gde živiš: Beograd

LaserJat ::Zasto tvoj prog prihvata samo 8912?

Question

LaserJat ::A sta je uopste taj digitalni zbir?

Pa prvi zbir cifara broja koji je jednocifren... (4567 -> 4+5+6+7=22 -> 2+2 = 4)

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

evo vam i moje verzije

#include <iostream> using namespace std; int main() {    while(1) {       int broj = 0, zbir = 0;       cout << "--------------------------------" << endl;       cout << "Unesite broj "; cin >> broj;       do {          zbir = 0;          while(broj > 9){             zbir += (broj % 10);             broj /= 10;          }          zbir += broj;          broj = zbir;          if (zbir < 10) {             break;          }          cout << "Rezultat posle prvog kruga = " << zbir << endl;       } while(zbir > 9);       cout << "Konacan rezultat = " << zbir << endl;    }    return 0; }

Ko je trenutno na forumu
 

Ukupno su 850 korisnika na forumu :: 47 registrovanih, 6 sakrivenih i 797 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., Alexandar-1973, amaterSRB, bojcistv, Boris90, crnitrn, deLacy, djboj, DonRumataEstorski, dragoljub11987, drazenm, dushan, esx66, FOX, goxin, Griffon vulture, Jahorina, Karla, kybonacci, laurusri, mercedesamg, mikrimaus, milenko crazy north, Milometer, mnn2, nebojsag, nemkea71, nenad81, NoOneEver Dreams, pein, raso7, Regrut Boskica, ruma, simazr, Sirius, Smiljke, Srle993, stalja, vathra, vladulns, vlajkox, zlaya011, Šraf, šumar bk2, 1107, 79693