Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Помощ за задачи на C/C++ (merged)

Featured Replies

Това ли трябва да се направи

a[3]={1,2,3}; Разликата е 1-2-3=-4;

b[3]={4,5,6}; Разликата е 4-5-6=-7;

Сумата е -4-7=-11;

?

Май е 1-4+2-5+3-6

и 1+4+2+5+6+3 но дали е това или за съответните елементи вади всеки път резултата?

  • Отговори 941
  • Прегледи 234,6k
  • Създадено
  • Последен отговор

Привет,от снощи се чудя къде е грешката в следната задача,но не се сещам.Целта е да се намери колко цифри съдържа едно число.Едно и грешното решение-винаги ми дава отговор 2: #include<iostream.h> #include <math.h> int main () { int a; cout<<"Vavedete chislo \n >" ; cin >>a; int b=1; do { b++; a=a%10;} while(a<10) ; cout<<"Chisloto sysdyrja " << b <<" cifri" ; return 0; } Благодаря ви предварително...

Редактирано от kai_99 (преглед на промените)

a=a%10 ти връща винаги само една цифра - това е остатъка при деление на 10. Ако искаш да махнеш последната цифра трябва a = a / 10 или направо a /= 10.

Пак не става Публикувано изображение Ето го кода след промяната

#include <iostream.h>

int main ()

{

int a;

cout<<"Vavedete chislo " ;

cin >>a;

int b=1;

//while(a<10)

do

{ b++;

a = a / 10;}

while(a<10) ;

cout<<"Chisloto sysdyrja " << b <<" cifri" ;

return 0 ;

}

Проиграй си няколко пъти с примерчета как работи програмата и ще си откриеш грешката. While изпълнява цикъла, докато условието е вярно!

// zada4a, koqto iz4isliava broq na cifrite na dadeno 4islo #include <iostream> using std::cout; using std::cin; using std::endl; int main() { int n = 0; cout << "Enter a number: "; cin >> n; size_t length = 0; int copy_n = n; while(true){ length++; copy_n = (int)copy_n/10; // samo cialata 4ast ot deleneto if(copy_n == 0) break; } cout << "Number " << n << " has " << length << " digits." << endl; return 0;

Привет,надявам се някои да ми помогне със следната задача-да се намери НОК на две цели числа.Благодаря ви предварително...

  • 2 седмици по-късно...

// author Dimitar Atanasov Staykov mitko_das // programa, koqto namira nai-malkoto obsto kratno na niakolko celi 4isla //#include "stdafx.h" #include <functional> using std::greater; #include <iostream> using std::cin; using std::cout; using std::endl; #include <vector> using std::vector; #include <cmath> #include <algorithm> using std::sort; #include <cassert> #include <limits> typedef long long int64; const int SUCCEED_EXIT = 0; // functia, koqto proverqva edno 4islo dali e prosto bool IsPrime(int num){ bool prime = true; for(int div=2; div<=sqrt((float)num); div++){ if(num%div == 0){ prime = false; break; } } return prime; } // functia, koqto proverqva daden vector dali sadarja samo prosti 4isla bool IsEqual(const vector<int> nvector) { for(size_t i=0; i+1<nvector.size(); i++){ if(nvector.at(i) != nvector.at(i+1)) return false; } return true; } // functia, proveriavasta dali nai-goliamoto 4islo se deli na vsi4ki ostanali bool CheckDivision(const vector<int> nV) { vector<int> nV_copy = nV; sort(nV_copy.begin(), nV_copy.end(), greater<int>()); for(size_t i=1; i<nV_copy.size(); i++){ if(nV_copy.at(0)%nV_copy.at(i) != 0) return false; } return true; } // functia, vrastasta vector s prostite mnojiteli na dadeno 4islo // ako 4isloto e prosto, vrasta vektor s edin element, koito e raven na samoto 4islo vector<int> Factoriaze(int number){ vector<int> vnFactors; vnFactors.clear(); assert(number != 0); if(IsPrime(number)){ vnFactors.push_back(number); return vnFactors; } int n = number; for(int div=2; div<=n; div++){ while((n%div == 0) && IsPrime(div)){ vnFactors.push_back(div); n /= div; } } return vnFactors; } // namira NOK na 4islata ot vn int64 NOK(const vector<int> vn) { int64 nok = 1; vector<int> vn_copy = vn; sort(vn_copy.begin(), vn_copy.end(), greater<int>()); vector<int> vn_helper = vn_copy; // ako vsi4ki 4isla sa prosti, nok e ravno na koe da e ot tiah if(IsEqual(vn)){ nok = vn.at(0); //#ifdef _DEBUG // cout << "equal!"; //#endif return nok; } else if(CheckDivision(vn)){ // kratni elementi nok = vn_copy.at(0); //#ifdef _DEBUG // cout << "multiple\n"; //#endif _DEBUG return nok; } else{ //#ifdef _DEBUG // cout << "otherwise\n"; //#endif nok = vn_copy.at(0); for(size_t i=1; i<vn_copy.size(); i++){ if(vn_copy.at(0)%vn_copy.at(i) == 0){ //nok /= vn_copy.at(i); continue; } else{ vector<int> vFactors = Factoriaze(vn_copy.at(i)); for(size_t j=0; j<vFactors.size(); j++){ if((vn_copy.at(0)%vFactors.at(j)!=0) && (nok%vn_copy.at(i)!=0)){ nok *= vFactors.at(j); assert((nok <= LONG_LONG_MAX) && (nok >= INT_MIN)); } else{ vn_copy.at(0) /= vFactors.at(j); continue; } } } vn_copy = vn_helper; // vrastane na parvoba4alnata stoinost na vn_copy.at(0) // ako j stane ravno na vFactors.size() za saotvetnata // iteracia } } assert((nok <= LONG_LONG_MAX) && (nok >= LONG_LONG_MIN)); return nok; } int main(int argc, char** argv) { // vektor, koito sadarja 4islata, na koito se tarsi nai - malkoto obsto kratno vector<int> nvNumbers; nvNumbers.clear(); int nCount = 0; // broqt na 4islata, na koito ste se tarsi NOK cout << "Enter the count of the numbers: "; cin >> nCount; int nNumber = 0; // vavejdanoto 4islo for(size_t i=0; i<(size_t)nCount; i++){ cout << "Enter the " << i+1 << " number: "; cin >> nNumber; nvNumbers.push_back(nNumber); } // izkarvane na vavedenite 4isla cout << "\nEntered integers are:\n"; for(size_t i=0; i<nvNumbers.size(); i++) cout << "\t" << nvNumbers.at(i); cout << endl; cout << "NOK is: " << NOK(nvNumbers) << endl; return SUCCEED_EXIT; }

Привет,надявам се някои да ми помогне със следната задача-да се намери НОК на две цели числа.Благодаря ви предварително...

#include <iostream.h>

int main()

{int a,b;

cout<<"vavedi chislata";

cin>>a>>b;

int p=a*b;

while (a!=b)

if(a>b)a=a-b;

else b=b-a;

int NOK=p/a;

cout<<"NOK="<<NOK<<endl;

system("pause");}

Обяснение:

НОК=(a*b)/NOD(a,b)

това е чисто математически

а НОД се намира по алгоритъма на Евклид - докато числата са различни от по-голямото се вади по-малкото и се присвоява като стойност на по-голямото

Тамън исках да се позанимая малко и вие му ги написахте Публикувано изображение

@д_георгивеа не е ли метода на ЕвклиТ?

А иначе @mitko_das вместо да пишеш хиляда реда using std:: (...);

пиши using namespace std;

Това включва всички тези редове :nono:

Благодаря,но аз вече бях забравил тази задача! :wors: Ето и решението. #include <iostream> using namespace std; int gcd(int a, int b); int acm(int a, int b); int main() { int a; cin >> a; int b; cin >> b; cout << "NOD = " << gcd(a, b); cout << "\n"; cout << "NOK = " << acm(a, b)<<"\n"; system ("pause"); return 0; } int gcd(int a, int b) { if (b==0) return a; if (b>a) swap (a,b); return gcd (b,a%b); } int acm(int a, int b) { a*b/gcd(a,b); }

Въвеждай функциите от горе за да може кода не ти е толкова тежък и пък за да може да се компилира по-бързо :wors:

Ам,надявам се някои да напише една програма за пермутация,с обяснения.Благодаря ви предварително...

Ам,надявам се някои да напише една програма за пермутация,с обяснения.Благодаря ви предварително...

преди да питаш за някоя задача потърси я в интернет за да не си губим времето. Това за пермутациите го има тука

http://infector.hit.bg/c++.html

  • 2 седмици по-късно...

Добро утро и честита Баба Марта!На 1 март 2008 г. в 8:30 тук часа тук ще бъдат публикувани задачите за втория кръг на Националната олимпиада по информатика. Аз ще участвам ;) Успех на всички...

Така...тея от НОИ не са добре!Сляха 9 и 10 клас в B група.Задачите бяха кофти,особено втора!Предлагам някой да ги обясни тук.До няколко дни ще кача 1ва задача...

Редактирано от kai_99 (преглед на промените)

Така...тея от НОИ не са добре!Сляха 9 и 10 клас в B група.Задачите бяха кофти,особено втора!Предлагам някой да ги обясни тук.До няколко дни ще кача 1ва задача...

По принцип на вторият кръг винаги е така. Представа си нямам каква е идеята на 2-та задача. Публикувано изображение обаче се успокоявам че поне не съм само аз

По принцип на вторият кръг винаги е така. Представа си нямам каква е идеята на 2-та задача. Публикувано изображение обаче се успокоявам че поне не съм само аз

Кои задачи реши?
  • 2 седмици по-късно...

Искам само да попитам, как може да се добави цветен текст или цветен фон в конзолни приложение, за C става въпрос. Как става?

Ако може да помогнете с 1 задачка нищо не и разбирам.

Публикувано изображение

Даден е низ от главни латински букви.Да се напише програма която установява, дали буквите участващите в низа са различни.

Благодяра Ви много!

Редактирано от informatika (преглед на промените)

Здравейте на всички. :)

В момента изучаваме С++, но сме в началото и имам затруднения. Дали бихте ми помогнали с една задача:

Да се напише програма, която превръща метри в сантиметри или милиметри в зависимост от избора на потребителя, който се определя с код на операция: 1 за - метри в милиметри; 2 за - метри в сантиметри

Задачата не е трудна, даже е много лесна, но поради факта, че сега започнахме този материал ми е необходима помощ за да се справя. Много ще съм благодарен, ако някой помогне Публикувано изображение;)

Редактирано от genkata10 (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.