Dzialanie na ciagu liczb.

0

Witam, potrzebuje pomocy w napisaniu funkcji, która z podanej liczby wezmie trzy ostatnie cyfry i odejmie je od pozostalej czesci, jak na przykładzie:
Jest liczba podana od uzytkownika: 12345678912345678912345666
Funkcja bierze liczbe 666 i odejmuje od 12345678912345678912345 i zwraca wynik..

Maja to byc bardzo duze liczby...

doszedlem jak na razie tylko do tego, zeby zgarnial 3 ostatnie cyfry:

char *number;
number_len = strlen(number);

      	    for(n = number_len - 3;n < number_len; n++) //3 ostatnie liczby juz na inta zamienione
{
number[n];
if(n = number_len - 3)
{setki= (number[number_len - 3] - '0') * 100;}
 
if(n = number_len - 2)
{dziesiatki=(number[number_len-2] - '0') * 10;}
 
if(n = number_len - 1)
{jednosci=(number[number_len - 1] - '0') * 1;}
         }
 
cala = setki + dziesiatki + jednosci;
printf(" Cala liczba %d\n",cala);

Dzieki..

0

Czy to nie to zadanie z podzielności przez 71113=1001 ?

Potrzebujesz tego:

long long sum[6];
int p=0,ch;
while((ch=getchar())!='\n') sum[(p++)%6]+=(ch-'0');

Dalej to chyba jasne?

0

szczerze? nie bardzo..

1

A teraz?

long long sum[6];
int p=0,ch;
while((ch=getchar())!='\n') sum[(p++)%6]+=(ch-'0');
long long A=((sum[(p++)%6]*10)+sum[(p++)%6])*10+sum[(p++)%6];
long long B=((sum[(p++)%6]*10)+sum[(p++)%6])*10+sum[(p++)%6];

1 użytkowników online, w tym zalogowanych: 0, gości: 1