在 C++ 中查詢最接近 a^b(a 的 b 次冪)的 x 的倍數
假設我們有三個值 a、b 和 x。我們必須找到 x 的一個倍數,該倍數最接近 ab。假設這些數字為 x = 4、a = 3、b = 3,則輸出將為 28,因為這最接近 33 = 27
方法很簡單;我們必須遵循以下條件:
如果 b < 0 且 a = 1,則 ab 變為 1,因此 x 的最接近倍數變為 0 或 x。
如果 b < 0 且 a > 1,則 ab 變為小於 1,因此 x 的最接近倍數變為 0。
如果 b > 0,則找到 ab。然後令 mul = ab 的整數部分 / x,則 x 的最接近倍數為 mul*x 或 (mul + 1)*x
示例
#include<iostream>
#include<cmath>
using namespace std;
void findMultiple(int a, int b, int x) {
cout << "Nearest multiple: ";
if (b < 0) {
if (a == 1 && x == 1)
cout << "1";
else
cout << "0";
}
int mul = pow(a, b);
int ans = mul / x;
int ans1 = x * ans;
int ans2 = x * (ans + 1);
if((mul - ans1) <= (ans2 - mul)){
cout << ans1;
}
else{
cout << ans2;
}
}
int main() {
int a = 3, b = 3, x = 4;
findMultiple(a, b, x);
}輸出
Nearest multiple: 28
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP