Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

32. zadatak
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
ceps
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 10. 2010. (13:03:07)
Postovi: (13A)16
Sarma = la pohva - posuda
71 = 74 - 3

PostPostano: 13:00 uto, 23. 11. 2010    Naslov: 32. zadatak Citirajte i odgovorite

[code:1]#include <stdio.h>

int palindrom (int x)
{

int t, l = 0, d = 0, n = 1;

t = x;
while (t > 0)
{
l = l + ((t % 2) * n);
t = t / 2;
n = 10 * n;
}
t = x;

n = n / 10;
while (t > 0 && n > 0)
{
d = d + ((t % 2) * n);
t = t / 2;
n = n / 10;
}


if (l == d) return 1;
else return 0;

}

int main ()
{

int m, n, i;

printf("Upisite interval: "); scanf("%d%d", &m, &n);

if ((m > 0 && n > 0) && m < n)
{
printf("Binarni palindromi u intervalu su: \n");
for (i = m; i <= n; i++)
if (palindrom(i)) printf("%d\n", i);

}


else printf("Greska!");
return 0;
}
[/code:1]

Program dobro radi, no najveći broj koji prepoznaje kao binarni palindrom je 511 (111111111), no veće brojeve poput 1023 (1111111111) neće prepoznati.
Kako riješiti taj problem, tj. kako napisati ovu moju funkciju ''palindrom'' tako da ne treba računati sa velikim brojevima i zato griješiti?
[/code]
Kod:
#include <stdio.h>

int palindrom (int x)
{
   
    int t, l = 0, d = 0, n = 1;
   
    t = x;
    while (t > 0)
    {
        l = l + ((t % 2) * n);
        t = t / 2;
        n = 10 * n;
    }
    t = x;
 
    n = n / 10;
    while (t > 0 && n > 0)
    {
        d = d + ((t % 2) * n);
        t = t / 2;
        n = n / 10;
        }
 
       
        if (l == d) return 1;
        else  return 0;
       
        }

int main ()
{
   
    int m, n, i;
   
    printf("Upisite interval: "); scanf("%d%d", &m, &n);
   
    if ((m > 0 && n > 0) && m < n)
    {
        printf("Binarni palindromi u intervalu su: \n");
        for (i = m; i <= n; i++)
        if (palindrom(i)) printf("%d\n", i);
       
    }
   
   
    else printf("Greska!");
    return 0;
}


Program dobro radi, no najveći broj koji prepoznaje kao binarni palindrom je 511 (111111111), no veće brojeve poput 1023 (1111111111) neće prepoznati.
Kako riješiti taj problem, tj. kako napisati ovu moju funkciju ''palindrom'' tako da ne treba računati sa velikim brojevima i zato griješiti?
[/code]




Zadnja promjena: ceps; 13:07 uto, 23. 11. 2010; ukupno mijenjano 1 put.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 13:03 uto, 23. 11. 2010    Naslov: Citirajte i odgovorite

Lijepo: radi bez pretvarnja u "dekadski zapis" (ova brljaza s 10). Ako znas raditi s 10, u cemu je problem raditi s 2?

Usput, palindromi su radjeni negdje na predavanju.
Lijepo: radi bez pretvarnja u "dekadski zapis" (ova brljaza s 10). Ako znas raditi s 10, u cemu je problem raditi s 2?

Usput, palindromi su radjeni negdje na predavanju.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
ceps
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 10. 2010. (13:03:07)
Postovi: (13A)16
Sarma = la pohva - posuda
71 = 74 - 3

PostPostano: 13:09 uto, 23. 11. 2010    Naslov: Citirajte i odgovorite

Hvala! Kad sam si kemijao to u glavi, odmah sam si ''namjestio'' na sustav u kojem razmišljam... Ovo je jedna od onih ahaaa - udarac po glavi grešaka. xD
Hvala! Kad sam si kemijao to u glavi, odmah sam si ''namjestio'' na sustav u kojem razmišljam... Ovo je jedna od onih ahaaa - udarac po glavi grešaka. xD


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan