在本文中,我們將解釋什么是模方程的??解,我們還將編寫一個(gè)程序來(lái)查找模方程的多個(gè)解。這是基本示例 -
Input : X = 30 Y = 2 Output : 4, 7, 14, 28 Explanation : 30 mod 4 = 2 (equals Y), 30 mod 7 = 2 (equals Y), 30 mod 14 = 2 (equals Y), 30 mod 28 = 2 (equals Y) Input : X = 30 Y = 2 Output : 4, 7, 14, 28 Explanation : 30 mod 4 = 2 (equals Y), 30 mod 7 = 2 (equals Y), 30 mod 14 = 2 (equals Y), 30 mod 28 = 2 (equals Y)
正如我們?cè)谏厦娴睦又锌吹降?,每個(gè)整數(shù)都是除 X 后得到余數(shù) Y 的解。在這個(gè)例子中,30 除以 4、7、14、28 得到余數(shù) 2,等于 Y。我們將以這種方式求解模方程。
我們可以應(yīng)用一種簡(jiǎn)單的方法,將 X 除以從 1 開(kāi)始的每個(gè)整數(shù),并檢查它是否給出余數(shù) Y,或者我們可以將 (X - Y) 除以每個(gè)整數(shù),并且除以 (X - Y) 但不能除 X 的整數(shù)是解。讓我們編寫一個(gè) C++ 程序來(lái)查找模方程的不同解。
#include <bits/stdc++.h> using namespace std; int numberofdivisor(int X, int Y){ int N = (X - Y); int noOfDivisors = 1; for (int i = 1; i <= N/2; i++) { // if N is divisible by i if ((N % i) == 0) { // count if integer is greater than Y if (i > Y) noOfDivisors++; } } return noOfDivisors; } void numberofsolutions(int X, int Y){ int noOfSolutions; if (X == Y) noOfSolutions = -1; if (X < Y) noOfSolutions = 0; if (X > Y) noOfSolutions = numberofdivisor(X, Y); if (noOfSolutions == -1) { cout << "X can take Infinitely many values" " greater than " << X << "\n"; } else { cout << "Number of solution = " << noOfSolutions; } } // main function int main(){ int X,Y; cin >> X; cin >> Y; numberofsolutions(X, Y); return 0; }
當(dāng)我們寫入 0 作為輸入時(shí),程序會(huì)給出如下輸出 -
立即學(xué)習(xí)“C++免費(fèi)學(xué)習(xí)筆記(深入)”;
X can take Infinitely many values greater than 0
當(dāng)我們輸入其他數(shù)字時(shí),上面的程序會(huì)顯示這樣的輸出(這里我們提供了 5 作為輸入) -
Number of solution = 2
現(xiàn)在我們對(duì)每個(gè)函數(shù)進(jìn)行解釋,以便您可以輕松理解程序。
在main中函數(shù)中,我們將 X 和 Y 的值作為輸入,并通過(guò)調(diào)用 numberofsolutions() 函數(shù)查找可能的解決方案的數(shù)量。
該函數(shù)檢查 X 和 Y 是否滿足X 應(yīng)該大于 Y 的條件,因?yàn)槲覀冋也坏酱笥诒怀龜?shù)的余數(shù)。此函數(shù)調(diào)用另一個(gè)函數(shù) numberofdivisor() 并獲取 X 的除數(shù)數(shù),從而得出余數(shù) Y。
此函數(shù)查找 X 的除數(shù)數(shù) - Y 通過(guò)運(yùn)行從 1 到 (X - Y)/2 的循環(huán)并檢查每個(gè)整數(shù)是否能整除,并且該整數(shù)不應(yīng)完全整除 X。
模方程的解是除 X 并得到余數(shù) Y 的整數(shù);我們從各種例子中了解到這一點(diǎn)。方程可以有一些解,因此我們通過(guò)應(yīng)用簡(jiǎn)單的方法來(lái)找到這些解。
我們可以編寫一個(gè) C++ 程序來(lái)計(jì)算模方程的解。我們可以用其他語(yǔ)言(例如 C、Java、Python 或任何其他編程語(yǔ)言)編寫相同的程序。希望您發(fā)現(xiàn)本文有助于理解如何找到模方程的多個(gè)解的概念。
以上就是使用C++找到模方程的解的數(shù)量的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
c++怎么學(xué)習(xí)?c++怎么入門?c++在哪學(xué)?c++怎么學(xué)才快?不用擔(dān)心,這里為大家提供了c++速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)