在C++中,Midy的定理
我們得到整數值a_num,它將儲存分子和p_den,它將儲存應該是素數的分母。任務是檢查a_num除以p_den後的運算是否證明了midy定理。
證明Midy定理的步驟是-
輸入分子為 a_num,分母為 p_den,應始終為質數。
將數字相除。檢查重複的小數值。
儲存小數值,直到它們不重複。
檢查數字是否重複甚至,如果是,則將它們分成兩半
將兩個數字相加。如果輸出是一個 9 的字串,那麼它證明了 Midy 定理。
讓我們來看看這種情況的各種輸入輸出場景-
#In − int a_num = 1 和int p_den = 19
輸出− 重複小數為:052631578947368421 證明了Midy 定理
解釋− 依照上述步驟檢查Midy 定理,即
#除1 / 19 = 052631578947368421
-
重複的十進位值為-:052631578947368421。
將數字分成兩半,即 052631578 947368421。
將兩者相加兩半即 052631578 947368421 = 999,999,999。
如我們所見,999,999,999 是 9 的字串,它證明了米迪定理。
ul>輸入整數值作為int a_num和int p_den。
呼叫函數作為Midys_theorem( a_num, p_den) 來證明 Midy 定理。
-
在函數check_Midys() 內
#建立變數為int 先到0,int 最後到0
檢查函數check(val) 是否回傳FALSE,然後列印Midy 定理不適用。
ELSE IF len % 2 = 0 然後開始循環FOR 從i 到0 直到i 小於len/2 並將first 設為first * 10 (str[i] - '0' ) 並將last 設為last * 10 (str[len / 2 i] - '0') 並列印證明的Midy 定理。
ELSE,印出Midy 定理不適用.
-
在函數Midys_theorem(int a_num, int p_den)內部
建立一個map類型變數將整數類型值對應為map_val並清除地圖。
將提醒設為a_num % p_den。
在沒有提醒時開始等於0且map_val.find(reminder)等於map_val.end()然後設定map_val[reminder]為result.length(),reminder為reminder * 10 ,temp為reminder / p_den,result為result to_string(temp)並提醒提醒% p_den。
檢查 IF 餘數 = 0,然後傳回 -1 ELSE,將計數設為 result.substr(map_val[reminder])
傳回計數
- #函數內部bool check(int val)
- 從i 到2 開始循環FOR,直到i 小於val/2。檢查 IF val % i = 0,然後傳回 FALSE,否則回傳 TRUE。
#輸入 −int a_num = 49,int p_den = 7
#輸出 − 無重複小數
解釋− 如我們所見的,49/7 不會產生小數值,因為49 可以完全被7 整除。因此,輸出為“無重複小數”。
以下程式中使用的方法是如下
#include <bits/stdc++.h>
using namespace std;
bool check(int val){
for(int i = 2; i <= val / 2; i++){
if(val % i == 0){
return false;
}
}
return true;
}
void check_Midys(string str, int val){
int len = str.length();
int first = 0;
int last = 0;
if(!check(val)){
cout<<"\nNot applicable for Midy's theorem";
}
else if(len % 2 == 0){
for(int i = 0; i < len / 2; i++){
first = first * 10 + (str[i] - '0');
last = last * 10 + (str[len / 2 + i] - '0');
}
cout<<"\nProved Midy's theorem";
}
else{
cout<<"\nNot applicable for Midy's theorem";
}
}
string Midys_theorem(int a_num, int p_den){
string result;
map<int, int> map_val;
map_val.clear();
int reminder = a_num % p_den;
while((reminder != 0) && (map_val.find(reminder) == map_val.end())){
map_val[reminder] = result.length();
reminder = reminder * 10;
int temp = reminder / p_den;
result += to_string(temp);
reminder = reminder % p_den;
}
if(reminder == 0){
return "-1";
}
else{
string count = result.substr(map_val[reminder]);
return count;
}
}
int main(){
int a_num = 1;
int p_den = 19;
string result = Midys_theorem(a_num, p_den);
if(result == "-1"){
cout<<"No Repeating Decimal";
}
else{
cout<<"Repeating decimals are: "<<result;
check_Midys(result, p_den);
}
return 0;
}
登入後複製
輸出如果我們執行上面的程式碼,它將產生以下輸出#include <bits/stdc++.h> using namespace std; bool check(int val){ for(int i = 2; i <= val / 2; i++){ if(val % i == 0){ return false; } } return true; } void check_Midys(string str, int val){ int len = str.length(); int first = 0; int last = 0; if(!check(val)){ cout<<"\nNot applicable for Midy's theorem"; } else if(len % 2 == 0){ for(int i = 0; i < len / 2; i++){ first = first * 10 + (str[i] - '0'); last = last * 10 + (str[len / 2 + i] - '0'); } cout<<"\nProved Midy's theorem"; } else{ cout<<"\nNot applicable for Midy's theorem"; } } string Midys_theorem(int a_num, int p_den){ string result; map<int, int> map_val; map_val.clear(); int reminder = a_num % p_den; while((reminder != 0) && (map_val.find(reminder) == map_val.end())){ map_val[reminder] = result.length(); reminder = reminder * 10; int temp = reminder / p_den; result += to_string(temp); reminder = reminder % p_den; } if(reminder == 0){ return "-1"; } else{ string count = result.substr(map_val[reminder]); return count; } } int main(){ int a_num = 1; int p_den = 19; string result = Midys_theorem(a_num, p_den); if(result == "-1"){ cout<<"No Repeating Decimal"; } else{ cout<<"Repeating decimals are: "<<result; check_Midys(result, p_den); } return 0; }
Repeating decimals are: 052631578947368421 Proved Midy's theorem
以上是在C++中,Midy的定理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

C語言數據結構:樹和圖的數據表示與操作樹是一個層次結構的數據結構由節點組成,每個節點包含一個數據元素和指向其子節點的指針二叉樹是一種特殊類型的樹,其中每個節點最多有兩個子節點數據表示structTreeNode{intdata;structTreeNode*left;structTreeNode*right;};操作創建樹遍歷樹(先序、中序、後序)搜索樹插入節點刪除節點圖是一個集合的數據結構,其中的元素是頂點,它們通過邊連接在一起邊可以是帶權或無權的數據表示鄰

文件操作難題的真相:文件打開失敗:權限不足、路徑錯誤、文件被佔用。數據寫入失敗:緩衝區已滿、文件不可寫、磁盤空間不足。其他常見問題:文件遍歷緩慢、文本文件編碼不正確、二進製文件讀取錯誤。

C#和C 的歷史與演變各有特色,未來前景也不同。 1.C 由BjarneStroustrup在1983年發明,旨在將面向對象編程引入C語言,其演變歷程包括多次標準化,如C 11引入auto關鍵字和lambda表達式,C 20引入概念和協程,未來將專注於性能和系統級編程。 2.C#由微軟在2000年發布,結合C 和Java的優點,其演變注重簡潔性和生產力,如C#2.0引入泛型,C#5.0引入異步編程,未來將專注於開發者的生產力和雲計算。

算法是解決問題的指令集,其執行速度和內存佔用各不相同。編程中,許多算法都基於數據搜索和排序。本文將介紹幾種數據檢索和排序算法。線性搜索假設有一個數組[20,500,10,5,100,1,50],需要查找數字50。線性搜索算法會逐個檢查數組中的每個元素,直到找到目標值或遍歷完整個數組。算法流程圖如下:線性搜索的偽代碼如下:檢查每個元素:如果找到目標值:返回true返回falseC語言實現:#include#includeintmain(void){i

C語言多線程編程指南:創建線程:使用pthread_create()函數,指定線程ID、屬性和線程函數。線程同步:通過互斥鎖、信號量和條件變量防止數據競爭。實戰案例:使用多線程計算斐波那契數,將任務分配給多個線程並同步結果。疑難解答:解決程序崩潰、線程停止響應和性能瓶頸等問題。

如何在 C 語言中輸出倒數?回答:使用循環語句。步驟:1. 定義變量 n 存儲要輸出的倒數數字;2. 使用 while 循環持續打印 n 直到 n 小於 1;3. 在循環體內,打印出 n 的值;4. 在循環末尾,將 n 減去 1 以輸出下一個更小的倒數。

C語言函數包含定義、調用和聲明。函數定義指定函數名、參數和返回類型,函數體實現功能;函數調用執行函數並提供參數;函數聲明告知編譯器函數類型。值傳遞用於參數傳遞,注意返回類型,保持一致的代碼風格,並在函數中處理錯誤。掌握這些知識有助於編寫優雅、健壯的C代碼。

整數是編程中最基礎的數據類型,堪稱編程的基石。程序員的工作就是賦予這些數字意義,無論軟件多麼複雜,最終都歸結於整數運算,因為處理器只理解整數。為了表示負數,我們引入了二進制補碼;為了表示小數,我們創造了科學計數法,於是有了浮點數。但歸根結底,一切仍然離不開0和1。整數的簡史在C語言中,int幾乎是默認類型。儘管編譯器可能會發出警告,但在許多情況下,你仍然可以寫下這樣的代碼:main(void){return0;}從技術角度來看,這與以下代碼等效:intmain(void){return0;}這種
