A
apidrone
Гостин
Ниту јас не разбирам што се бара... А толку е просто со sin().....Па тоа полесно е , така ја напишав ама прочитав (сумата да се пресмета за i=1 до i=50) и затоа вака ја напишав -.-
Follow along with the video below to see how to install our site as a web app on your home screen.
Забелешка: This feature may not be available in some browsers.
Ниту јас не разбирам што се бара... А толку е просто со sin().....Па тоа полесно е , така ја напишав ама прочитав (сумата да се пресмета за i=1 до i=50) и затоа вака ја напишав -.-
int nzs(int x, int y)
{
if(x<0) x=-x;
if(y<0) y=-y;
int i;
for(i=1;;i++)
{
if(i%x==0 && i%y==0)
return i;
}
}
Ако може помош за рекурзивна функција за барање на НЗС на два броја.
Јас би ја напишал вака без рекурзија, со циклус, ама ми треба со рекурзија.
int nzs(int x,int y)
{ if(x==y)return x;
if(x>y)
{if(x%y==0)return x;
else {x++;nzs(x,y);}
}
if(y>x)
{if(y%x==0)return y;
else {y++;nzs(x,y);}
}
}
Код:int nzs(int x,int y) { if(x==y)return x; if(x>y) {if(x%y==0)return x; else {x++;nzs(x,y);} } if(y>x) {if(y%x==0)return y; else {y++;nzs(x,y);} } }
Ако може помош за рекурзивна функција за барање на НЗС на два броја.
Јас би ја напишал вака без рекурзија, со циклус, ама ми треба со рекурзија.
int nzd(int a, int b)
{
return (b!=0 ? nzd(b, a%b) : a);
}
int nzs(int a, int b)
{
return (a*b)/nzd(a,b);
}
int nzd(int a, int b)
{
if(b==0)
return a;
else
return nzd(b, a%b);
}
Да се напише функција kreirajNanizanoLeksi() која како аргумент прима низа од цели броеви и колку броеви има вкупно низата. Функцијата враќа покажувач кон водач на инордер нанижано бинарно лексикографско стебло. За водачот се алоцира меморија во самата функција. Доколку некои вредности од низата се појават повеќе од еднаш дупликатите се игнорираат. Потоа да се напише функција inorderNizano() која го изминува истото дрво и ги печати вредностите на info полињата.
#include <stdio.h>
#include <stdlib.h>
#define MAX_ELEMENTI 100
#define NEW(t) (t *)malloc(sizeof(t))
typedef struct element2 {
int info;
struct element2 *left, *right;
char rtag, ltag;
} nanizano;
int main()
{
nanizano *v, *kreirajNizanoLeksi(int[], int);
int i = 0, n, niza[MAX_ELEMENTI], scanOK;
void inorderNanizano (nanizano *);
while((i<MAX_ELEMENTI)&&((scanOK=(scanf("%d",&n)))||1)&&(getchar()!='`'))
if(scanOK) niza[i++]=n;
v = kreirajNizanoLeksi(niza, i);
printf("\nInorder nanizano:\n");
inorderNanizano(v);
system("pause");
return 0;
}
nanizano *sledbenik (nanizano *t)
{
if(t->rtag=='+')
{
t=t->right;
while(t->ltag=='+')
t=t->left;
return t;
}
else return t->right;
}
void inorderNanizano (nanizano *v)
{
nanizano *temp=v->right;
while(temp->ltag=='+')
temp=temp->left;
while(temp!=v)
{
printf("%d ", temp->info);
temp=sledbenik(temp);
}
}
void insert (nanizano **n, int x)
{
nanizano *p=NEW(nanizano);
nanizano *temp=(*n)->right;
for(;;)
{
if(temp==NULL)
{
p->info=x;
p->right=*n;
p->rtag='-';
p->left=*n;
p->ltag='-';
break;
}
else if(x<temp->info)
{
if(temp->ltag!='-')
temp=temp->left;
else
{
p->info=x;
p->right=temp;
p->rtag='-';
p->left=temp->left;
p->ltag=temp->ltag;
temp->left=p;
temp->ltag='+';
break;
}
}
else if(x>temp->info)
{
if(temp->rtag!='-')
temp=temp->right;
else
{
p->info=x;
p->right=temp->right;
p->rtag=temp->rtag;
p->left=temp;
p->ltag='-';
temp->right=p;
temp->rtag='+';
break;
}
}
else break;
}
}
nanizano *kreirajNizanoLeksi (int a[], int n)
{
nanizano *v=NEW(nanizano);
v->right=NULL;
v->rtag='+';
v->left=v;
v->ltag='-';
for(int i=0; i<n; i++)
insert(&v, a[i]);
return v;
}
да се напише програма која за внесени 2 броја ке проверува дали вториот број е подброј на првиот број. Притоа бр Б е подброј на А ако сите цифри на Б се содржат ви А по соодветниот редослед и без прекини на пр. 432 е подброј на 54321 но не е подброј на 543621. проверката за подброј да се реализира со рекурзивна функција
#include <stdio.h>
#include <stdlib.h>
int x,y;
int AvoB(int a, int b);
int main(int argc, char *argv[])
{
scanf("%d%d",&x,&y);
if (AvoB(x,y) == 1) printf("ok");
else
printf("N-OK");
system("PAUSE");
return 0;
}
int AvoB(int a, int b){
if (a == 0 && b != 0) return 0;
if (a == 0 || b == 0) return 1;
else
if (a % 10 == b % 10) return AvoB(a / 10, b / 10);
else{
x/=10;
return AvoB(x , y);
}
}
Повелете
Код:#include <stdio.h> #include <stdlib.h> int x,y; int AvoB(int a, int b); int main(int argc, char *argv[]) { scanf("%d%d",&x,&y); if (AvoB(x,y) == 1) printf("ok"); else printf("N-OK"); system("PAUSE"); return 0; } int AvoB(int a, int b){ if (a == 0 && b != 0) return 0; if (a == 0 || b == 0) return 1; else if (a % 10 == b % 10) return AvoB(a / 10, b / 10); else{ x/=10; return AvoB(x , y); } }
А работи програмава??Повелете
Код:#include <stdio.h> #include <stdlib.h> int x,y; int AvoB(int a, int b); int main(int argc, char *argv[]) { scanf("%d%d",&x,&y); if (AvoB(x,y) == 1) printf("ok"); else printf("N-OK"); system("PAUSE"); return 0; } int AvoB(int a, int b){ if (a == 0 && b != 0) return 0; if (a == 0 || b == 0) return 1; else if (a % 10 == b % 10) return AvoB(a / 10, b / 10); else{ x/=10; return AvoB(x , y); } }
Да!!![]()
if (a == 0 && b != 0) return 0;
Код:if (a == 0 && b != 0) return 0;
Ако за овој код внесеш 432 и 54321, очекуваш да врати 1, но b(54321) е различно од 0(!=0) па функцијата ќе врати вредност 0.
printf("Vnesete prvo A i potoa B");
scanf("%d%d",&x,&y);
Внесуваш забуни младичуСекогаш првин се внесува бројот со повеќе цифри а потоа со помалку само што не ми е нагласено на почетокот. Треба да нагласам:
Код:printf("Vnesete prvo A i potoa B"); scanf("%d%d",&x,&y);
Во случајот прво се внесува 54321 а потоа 432.
Ок ?