Частное от деления и остаток используя только сложение и вычитание

Уровень сложности:

Найти частное от деления и остаток используя только операции сложения и вычитания.

Как уже было сказано в условии программы, можно использовать только операции сложения и вычитания. Результат работы программы показан ниже:

// 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

Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 11.09.2012
Поделиться:

Комментарии

  1. 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;
    };
  2. 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;
    }
  3. 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;
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.