30天程式設計練習(四)

2021-08-18 10:17:39 字數 1565 閱讀 2225

1013 求數根

題意:各個位數相加,求得的結果再各位數相加,直到取得個位數

解析:1 、要用字串的形式輸入,防止大數     2、 迴圈求%10,在求和

#include

#include

using namespace std;  

int main()  

do  

n=sum;  

}while(n>9);  

cout<}  

return 0;  

}  1013 求兩個數的最大公約數

解析:使用輾轉相除法寫出求最大公約數函式

#include

int select(int ,int);  

main()  

else  

}  int select(int x,int y)  

else  

}  1015 列舉法

題意:輸入乙個字串和乙個數,字串都是大寫字母abc..z a代表1.. 找出滿足的題意函式關係的字元組合,使其等於那個數

解析:使用dfs列舉所有排列組合

#include

#include

#include

using namespace std;  

int main() 

sort(tag, tag + length);             //排序  

for(i = 0; i < length; i++)          //列舉  

for(j = 0; j < length; j++)  

if(j != i)  

for(k = 0; k < length; k++)  

if(k != j && k != i)  

for(l = 0; l < length; l++)  

if(l != k && l != j && l != i)  

for(m = 0; m < length; m++)  

}  if(flag)  

cout << "no solution" << endl;  

else  

cout << ans << endl;  

}  return 0;  

}  1016 素數環

題意:給出乙個小於20的數,將1到這個數所有的數排成乙個環,要求相臨數和都是素數

解析:設定乙個素數表,判斷相鄰數和是否在素數表中。dfs遍歷所有情況,並輸出。

#include

using namespace std;  

int prime[40]=;//因為數字規模比較小,因此手動打素數表  

int n; 

bool visit[25];  

int a[25]; 

void dfs(int num)  

cout<}  

else                                   //否則尋找滿足條件的數字 

}  }  }  

}  int main() 

return 0;  

30天程式設計練習(三)

1009 貓鼠交換 解析 一道典型的貪心演算法的題,類似於揹包問題,先按單價從小到大排序,再從最便宜的開始買,每次都買的盡可能多。include include using namespace std struct greedheart bool compare greedheart room1,g...

30天程式設計練習(十)

1040 排序 題意 給你一些整數,你的任務是對這些數字進行排序。解析 快速排序 include include include include include using namespace std void main cout arr 0 for int i 1 i 1041 函式題 題意 初始...

30天程式設計練習(十一)

1044 迷宮問題 題意 你,冒險家,在乙個危險的地牢裡。你被告知地牢要倒塌了。你必須在規定的時間內找到出口樓梯。但是,你不想空手離開地牢。地牢裡有很多稀有的珠寶。在你離開之前試著收集一些。有些珠寶便宜,有些貴。所以你會盡最大努力最大化你的收藏,更重要的是,及時離開地牢。解析 bfs構建乙個珠寶和珠...