C++ 中的凱斯數
在本教程中,我們將編寫一個程式,檢查給定數字是否為凱斯數。
如果數字 n 出現在使用其數字生成的序列中,則稱為凱斯數。該序列的第一個 n 個項為數字 n 的數字,其他項透過前一個 n 項的和遞迴計算。
讓我們看看解決問題的步驟。
- 初始化數字 n。
- 初始化一個空向量 elements 來儲存序列。
- 計算位數並將每個位數新增到向量中。
- 反轉數字向量。
- 初始化一個變數,其中 0 稱為下一個元素。
- 編寫一個迴圈,該迴圈持續到下一個元素小於 n。
- 新增最後 n 個數字以獲得下一個元素。
- 將下一個元素新增到向量中。
- 如果下一個元素等於 n 則返回 true,否則返回 false。
例項
讓我們看看程式碼。
#include<bits/stdc++.h>
using namespace std;
bool isKeithNumber(int n) {
vector<int> elements;
int temp = n, digitsCount = 0;
while (temp > 0) {
elements.push_back(temp % 10);
temp = temp / 10;
digitsCount++;
}
reverse(elements.begin(), elements.end());
int nextElement = 0, i = digitsCount;
while (nextElement < n) {
nextElement = 0;
for (int j = 1; j <= digitsCount; j++) {
nextElement += elements[i - j];
}
elements.push_back(nextElement);
i++;
}
return nextElement == n;
}
int main() {
isKeithNumber(43) ? cout << "Yes" << endl : cout << "No" << endl;
isKeithNumber(14) ? cout << "Yes" << endl : cout << "No" << endl;
isKeithNumber(197) ? cout << "Yes" << endl : cout << "No" << endl;
return 0;
}輸出
如果您執行上述程式碼,隨後您將獲得以下結果。
No Yes Yes
結論
如果您對本教程有任何疑問,請在評論區留言。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP