これは、2項係数を計算するプログラムです。いいえ、私はk値を入力するとプログラムがクラッシュします。しかし、正しい値(n> k)を入力するためにk> nと入力すると、どうすればいいのでしょうか。正しい値を入力するとプログラムが停止します(n> k)。正しい値を入力するまで実行するC++ループ
#include<stdio.h>
#include <iostream>
using namespace std;
int binomialCoeff(int n, int k)
{
// Base Cases
if (k==0 || k==n)
return 1;
else
return binomialCoeff(n-1, k-1) + binomialCoeff(n-1, k);
}
int main()
{
int n,k;
cin >>n;
cin>>k;
printf("Value of C(%d, %d) is %d ", n, k, binomialCoeff(n, k));
return 0;
}
おそらくdo whileループですか? このようなもの:
do {
cin >>n;
cin>>k;
}while(n>k);
しかし、このループは機能しません。
ます。また 'のstd :: cin'の状態を確認する必要があります。読み込みに失敗した場合、数字ではないものを入力したとすると、無限ループに陥るでしょう。 'while(std :: cin && n> k)' – BoBTFish
'* Not working *'は、問題の十分な説明ではありません。 *どのように動作しませんか?それはコンパイルされませんか?それはクラッシュしますか?永遠にループしますか?何か火がついた? – Biffen
while(1) \t { \t \t cin >> n; \t \t cin >> k; (n> k) \t \t \t break; \t} これはあなたのために働くと思います。 –