•mircea2011
Strain
Karma: 1
Deconectat
Mesaje: 14
|
 |
« : Februarie 13, 2012, 22:46:48 » |
|
Salut. Am nevoie de putin ajutor la urmatoarele doua probleme.
1. Sa se verifice daca un numar n este palindrom in baza 16. Numarul este introdus in baza 10.
Ex : numarul introdus 111281 in interiorul buclei while obtin : 1B2B1 dupa inversarea tabloului : 1B2B1, practic echivalentul in haxazecimal al numarului 2525. dupa aceea ar trebui sa compar elementele celor doua tablouri : tab == tab[k].
am incercat si cealalta varianta a =a*10 + tab b =b*10 + tab[k] dupa care compar a==b tot nu functioneaza.
#include<stdio.h> #define p 30
int main() { int n, n10, i, j, k, tab[p], A; printf("\n Introduceti n10 = "); scanf("%d", &n10); printf("\n"); i=0; n=n10; while(n10) { tab = n10%16; n10/=16; i++; } j=i-1; printf(" Numarul %d in haxazecimal : ", n); for(k=j; k>=0; k--) printf(" %X", tab[k]); printf("\n"); }
2. Sa se afiseze primele n numere care au suma cifrelor mai mica sau egala cu m.
Ex : pentru n=20 si m=4 se vor afisa : 1, 2, 3, 4, 10, 11, 12, 13, 20, 21.
#include<stdio.h>
int main() { int m, n, a, b, c, s, i; printf("\n Dati n = "); scanf("%d", &n); printf("\n Dati m = "); scanf("%d", &m); printf("\n"); i=1; for(; i<=n; ) { a=c; c+=1; s=0; while(a) { b=a%10; s+=b; a/=10; } if(s<=m) { printf(" %d", s); i++; } c++; } printf("\n"); }
|