Найти частное от деления и остаток используя только операции сложения и вычитания.
Как уже было сказано в условии программы, можно использовать только операции сложения и вычитания. Результат работы программы показан ниже:
// divide_add_sub.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "rus");
cout << "Введите делимое: ";
int divident; // делимое
cin >> divident;
cout << "Введите делитель: ";
int divider; // делитель
cin >> divider;
int integer = 0; // целая часть от деления
while (abs(divident) && abs(divident) >= abs(divider) && divider != 0)
{
if ((divident >= 0 && divider > 0) || (divident < 0 && divider < 0)) // если делимое и делитель положительные или отрицательные числа
{
divident -= divider; // уменьшаем делимое
integer++; // инкремент целой части от деления
} else
{
if (divident < 0 && divider > 0) // если делимое отрицательное а делитель положительное числа
{
divident += divider;
integer--;
} else
{
if (divident > 0 && divider < 0) // если делимое положительное а делитель отрицательное числа
{
divident += divider;
integer--;
}
}
}
}
if (divider != 0)
{
cout << "Частное от деления: " << integer
<< "\nОстаток от деления: " << divident << endl;
} else cout << "На ноль делить нельзя!\n";
system("pause");
return 0;
}
Результат смотрим ниже:
CppStudio.com
Введите делимое: 15
Введите делитель: 5
Частное от деления: 3
Остаток от деления: 0
Комментарии
olewasl
/01.05.17 20.10 Частное от деления и остаток используя только сложение и вычитание //olewasl #include <iostream> using namespace std; int main() { int del=0; //Делимое int dlt=0; //Делитель int nRep=0; //Частное int booLdel=0;//определение отрицательного делимого int booLdlt=0;//определение отрицательного делителя cout<<"Enter delimoe : "; cin>>del; if(del<0) { del=del*(-1); //если число меньше 0,умножаем на -1, производим вычисления над числами больше 0 booLdel=1; //если делимое меньше 0, то присваиваем 1 } else; do { cout<<"Enter delitel : "; cin>>dlt; if(dlt==0) cout<<"Delitel cant be equal 0\n"; }while(dlt==0); if(dlt<0) { dlt=dlt*(-1); //если число меньше 0,умножаем на -1, производим вычисления над числами больше 0 booLdlt=1; //если делитель меньше 0, то присваиваем 1 } else; while(del>=0 && del>=dlt) { del=del-dlt; nRep++; //количество вычитаний и есть частное } //если оба числа либо больше либо меньше нуля, знак не меняем if((booLdel==1 && booLdlt==1)||(booLdel==0 && booLdlt==0)) { cout<<"Chastnoe : "<<nRep<<" "<<endl; if(del!=0) cout<<"Ostatok : "<<del; else; } //если одно из чисел отрицательное,меняем знак else { cout<<"Chastnoe : "<<nRep*(-1)<<" "<<endl; if(del!=0) cout<<"Ostatok : "<<del; else; } return 0; };PeZBarboZ
#include <iostream> using namespace std; int main() { setlocale(LC_ALL, "RUS"); int d = 0; int dd = 0; cout << "Введите делимое : "; cin >> d; cout << "Введите делитель : "; cin >> dd; int i = 0; int d1 = d; int dd1 = dd; while (d1 > 0) { d1 -= dd1; i++; if (d1 < 0) { i--; } } cout << "Частное от деления : " <<i<< endl; //////////////////////////////////////////// int ost = 0; while (d>0) { ost = (d -= dd); if (d < 0) ost += dd; } cout << "Остаток : " << ost << endl; ////////////////////////////////////// int proverka = (dd * i) + ost; cout << "Делитель (" << dd << ") * Частное от деления(" << i << ") + Остаток(" << ost << ") = " << (dd * i) + ost << endl; return 0; }PeZBarboZ
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, «RUS»);
int d = 0;
int dd = 0;
cout << «Введите делимое : «; cin >> d;
cout << «Введите делитель : «; cin >> dd;
int i = 0;
int d1 = d;
int dd1 = dd;
while (d1 > 0)
{
d1 -= dd1;
i++;
if (d1 < 0)
{
i—;
}
}
cout << «Частное от деления : » <<i<< endl;
////////////////////////////////////////////
int ost = 0;
while (d>0)
{
ost = (d -= dd);
if (d < 0)
ost += dd;
}
cout << «Остаток : » << ost << endl;
//////////////////////////////////////
int proverka = (dd * i) + ost;
cout << «Делитель (» << dd << «) * Частное от деления(» << i << «) + Остаток(» << ost << «) = » << (dd * i) + ost << endl;
return 0;
}