• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

NZS VO c++

  • Ја почнал/а темата
  • #1

HHH

Intern
20 февруари 2008
35
0
probav vaka ama ne izlaga nesto

#include <iostream>
using namespace std;
int main(){
int a=12,b=8,i=2;

int p=1;
while ((a||b)>0) {

if (a%i==0){
p=p*i;
a=a/i;}
if (b%i==0){
p=p*i;
b=b/i; }
else i++;
cout<<p; }

cin.get();
}
 

''TcM>>

Intern
6 јануари 2008
961
39
Pa ako ti e konkretno za tie dva broja onda mozes vaka:
Код:
#include <iostream>
using namespace std;
int main(){
int a=12,b=8,p;
p=(a+b)/2;
cout<<p;
drugoto se ti e bez vrska.

Ili pak poubavo bi bilo vaka:
Код:
   cout<<"Vnesi za kolku broja ke naogas NZS :";
   int a=0,b=0,rezultat;
   int p;
   cin>>p;
   for(int i=0;i<p;i++){          
           cout<<"Vnesi go "<<i+1<<"-ot broj: ";
           cin>>b;
           a=a+b;
           }
   rezultat=a/p;
   cout<<"Rezultatot e:"<<rezultat;
 

loverboy

Intern
6 февруари 2008
147
11
Ако бараш алгоритам за НЗС (Најмал Заеднички Содржател) тогаш еве ти го Евклидовиот алгоритам, ова е рекурзивно решение.
Код:
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);
}
Со повикување на функцијата nzs ќе го добиеш бараниот резултат
 
  • Ја почнал/а темата
  • #4

HHH

Intern
20 февруари 2008
35
0
Loverb, algoritmot ti e na mesto, nego ova ? conditional statement-ot malku zabushava.

inace ja resiv so for control flow za nzd

#include <iostream>
using namespace std;
int main(){
int i,j,p=1;
int a=8,b=12;

for (i=2;i<=9;i++){
if ((a%i==0) &&(b%i==0)){
p=p*i;
a=a/1;
b=b/i;
--i;}
if((a<=1) ||(b<=1))
break;
}

cout<<p<<endl;
cin.get();
}


a go probav istioot za NZS so mali izmeni kaj logickite operatori i ne ja biva
 

TataMata

Intern
13 јуни 2008
115
1
Решението на Loverboy не ми се свиѓа заради што бара НЗС само за два броја, а може да се повеќе броеви. Еве го кодот, малку се зезав, но мислам дека е ок...

Код:
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	vector<int> broevi;

	copy(istream_iterator<int>(cin), 
               istream_iterator<int>(), 
               back_inserter(broevi));

	if(broevi.empty()){
		cout << "Nemash vneseno broevi!n";
		return 1;
	}

	vector<int> lcm;
	copy(broevi.begin(), broevi.end(), back_inserter(lcm));

	while(true)
	{
		vector<int>::iterator itNajmal = min_element(lcm.begin(), lcm.end());
		*itNajmal += broevi[itNajmal - lcm.begin()];

		if(lcm.size() == count(lcm.begin(), lcm.end(), *itNajmal))
			break;
	}

	cout << "NZS e " << lcm[0];

	return 0;
}
 

Нови мислења

Последни Теми

Статистика

Теми
43,576
Мислења
823,776
Членови
28,079
Најнов член
ivannalex
На врв Дно