只能進行賦值,+1,固定次數的循環三種原子操作,只能操作0和正整數

要求:只能進行賦值,+1,固定次數的循環三種原子操作,只能操作0和正整數

簡單做個思路轉換即可。


#include <iostream>
using namespace std;

int my_add(int x, int y)
{
        for(int i =0; i < y; i++)       //加法,連續加1
                x++;
        return x;
}

int my_mul(int x, int y)
{
        int rst = 0;
        for(int i =0; i < y; i++)       //乘法,連續加x
                rst = my_add(rst, x);
        return rst;
}

int my_sub(int x, int y)
{
        for(int i = 0; i < x; i++, y++) //減法,連續加被減數至相等
        {
                if(y == x)
                        return i;
        }
        return x;
}

int my_div(int x, int y, int& r)        //除法,連續減被除數至小於餘數
{
        int ret = 0;
        while(x >= y)
        {
                x = my_sub(x, y);
                ret++;
        }
        r = x;
        return ret;
}

int main()
{
        cout << my_add(3, 4) << endl;
        cout << my_mul(5, 8) << endl;
        cout << my_sub(10, 8) << endl;
        int r = 1;
        int ret = my_div(33, 7, r);
        cout << ret << " " << r << endl;
        return 0;
}

發佈了87 篇原創文章 · 獲贊 13 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章