program w c++ dodawanie liczb 50 pozycyjnych
program w c++ dodawanie liczb 50 pozycyjnych
mam do napisania program który dodaje 2 liczby 50 pozycyjne(czyli takie ktore maja 50 cyfr w sobie) prosze o pomoc!!
- Sokół
- Użytkownik
- Posty: 451
- Rejestracja: 17 wrz 2006, o 19:22
- Płeć: Mężczyzna
- Lokalizacja: Zielona Góra
- Podziękował: 15 razy
- Pomógł: 55 razy
program w c++ dodawanie liczb 50 pozycyjnych
pozostaje implementacja dodawania pisemnego - wczytuj liczby jako stringi. Stwórz sobie zmienną pamięć. Odczytuj je od końca, zamieniając cyfry na liczby i dodawaj. Najpierw dodajesz jedności, jeśli ich suma S jest większa niż 9, to jako wynik zostawiasz S mod 10, a jedynkę kopiujesz do pamięci i dodajesz przy dodawaniu liczb reprezentujących dziesiątki. Programujesz zwykłe dodawanie pisemne.
program w c++ dodawanie liczb 50 pozycyjnych
noo tak ja to wiem że trzeba tak zrobić tylko chodzi mi oo gotowy kod programu bo u mnie niestety z pisaniem programów jest kiepsko....
-- 28 sty 2010, o 21:18 --
zrobiliśmy to na lekcji wiec jak by ktoś potrzebował to prosze...
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char liczba1[50], liczba2[50];
int wynik[50];
int l1,dl1=0,l2,dl2=0,p=0,s;
cout<<"podaj pierwsza liczbe ";
cin.getline(liczba1,sizeof(liczba1));
cout<<"podaj druga liczba ";
cin.getline(liczba2,sizeof(liczba2));
while(liczba1[dl1]!=0) dl1++;
while(liczba2[dl2]!=0) dl2++;
cout<<liczba1<<endl;
cout<<liczba2<<endl;
for(int i=1;i<=50;i++)
liczba1[50-i]=liczba1[dl1-i];
for(int i=0;i<50-dl1;i++)
liczba1='0';
for(int i=1;i<=50;i++)
liczba2[50-i]=liczba2[dl2-i];
for(int i=0;i<50-dl2;i++)
liczba2='0';
for(int i=49;i>=0;i--)
{
s=(liczba1-'0')+(liczba2-'0')+p;
if (s>9)
{
p=1;
s=s-10;
}
else
p=0;
//cout<<s<<"-"<<p<<endl;
wynik=s;
};
for(int i=0;i<50;i++)
cout<<wynik;
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
-- 28 sty 2010, o 21:18 --
zrobiliśmy to na lekcji wiec jak by ktoś potrzebował to prosze...
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char liczba1[50], liczba2[50];
int wynik[50];
int l1,dl1=0,l2,dl2=0,p=0,s;
cout<<"podaj pierwsza liczbe ";
cin.getline(liczba1,sizeof(liczba1));
cout<<"podaj druga liczba ";
cin.getline(liczba2,sizeof(liczba2));
while(liczba1[dl1]!=0) dl1++;
while(liczba2[dl2]!=0) dl2++;
cout<<liczba1<<endl;
cout<<liczba2<<endl;
for(int i=1;i<=50;i++)
liczba1[50-i]=liczba1[dl1-i];
for(int i=0;i<50-dl1;i++)
liczba1='0';
for(int i=1;i<=50;i++)
liczba2[50-i]=liczba2[dl2-i];
for(int i=0;i<50-dl2;i++)
liczba2='0';
for(int i=49;i>=0;i--)
{
s=(liczba1-'0')+(liczba2-'0')+p;
if (s>9)
{
p=1;
s=s-10;
}
else
p=0;
//cout<<s<<"-"<<p<<endl;
wynik=s;
};
for(int i=0;i<50;i++)
cout<<wynik;
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}