特定の携帯電話番号がC++で派手かどうかを確認します
私たちは10桁の携帯電話番号を持っています、私たちの仕事はその番号が派手な番号であるかどうかをチェックすることです。ファンシーナンバーには3つの異なる条件があります。少なくとも1つが真である場合、その数は空想的です。これらの条件は以下のようなものです-
- 555のように、1つの数字が3回連続して発生します
- 3つの連続する数字は、123や321のように昇順または降順のいずれかです。
- 8965499259のように、1桁の数字が4回以上出現します。ここでは、9回が4回出現しています。
ファンシーナンバーの一例は9859009976で、これは3番目の条件が満たすファンシーナンバーです。
数値を文字列として取得します。条件3では、各数値の頻度をカウントします。ここでは、ハッシュの基本概念を使用します。
例
#include <iostream> #define N 5 using namespace std; bool consecutiveThreeSameDigits(string s) { for (int i = 0; i < s.size() - 2; i++) { if (s[i] == s[i + 1] && s[i + 1] == s[i + 2]) return true; } return false; } bool incDecThree(string s) { for (int i = 0; i < s.size() - 2; i++) { if ((s[i] < s[i + 1] && s[i + 1] < s[i + 2]) || (s[i] > s[i + 1] && s[i + 1] > s[i + 2])) return true; } return false; } bool fourOccurrence(string s) { int freq[10]; for(int i = 0; i < 10; i++) freq[i] = 0; for (int i = 0; i < s.size(); i++) freq[s[i] - '0']++; for (int i = 0; i < 9; i++) if (freq[i] >= 4) return true; return false; } bool isFancyNumber(string s) { if (consecutiveThreeSameDigits(s) || incDecThree(s) || fourOccurrence(s)) return true; else return false; } int main() { string s = "7609438921"; if (isFancyNumber(s)) cout << "This is fancy number"; else cout << "This is not a fancy number"; }
出力
This is fancy number
-
NがC++の五角数であるかどうかをチェックするプログラム
数Nが与えられた場合、タスクはその数が五角数であるかどうかを確認することです。五角形を形成するために配置できる数字は、五角形を形成するための点として使用できるため、五角形の数字です。たとえば、五角数のいくつかは1、5、12、22、35、51 .... 数式を使用して、その数が五角数であるかどうかを確認できます $$ p(n)=\ frac {\ text {3} * n ^ 2-n} {\ text {2}} $$ ここで、nは五角形の点の数です 例 Input-: n=22 Output-: 22 is pentagonal number Input-: n=23 Output-:
-
アームストロング数をチェックするC++プログラム
アームストロング数は、桁の合計が桁の総数の累乗に等しい数です。アームストロング数のいくつかの例は次のとおりです。 3 = 3^1 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1 = 371 407 = 4^3 + 0^3 + 7^3 = 64 +0 + 343 = 407 番号がアームストロング番号であるかどうかをチェックするプログラムは次のとおりです。 例 #include <iostream> #include <cmath< using namespa