Шалгалт

Бодлогын хариу нь ширхэг бодлогоос ширхгийг сонгох боломжийн тоотой тэнцүү.

Бодолт 1

#include <iostream> using namespace std; int f[20], i, n, k; int main() { cin >> n >> k; f[0] = 1; for (i = 1; i <= n; i ++) f[i] = f[i-1] * i; cout << f[n] / (f[n-k] * f[k]); return 0; }

Бодолт 2

ширхэг бодлогоос ширхэгийг сонгох боломжийн тоо нь дараах хоёрын нийлбэртэй тэнцүү.

  1. Сонгосон дотор дүгээр бодлого орсон байх боломжийн тоо нь -тэй тэнцүү.
  2. Сонгосон дотор дүгээр бодлого ороогүй байх боломжийн тоо нь -тай тэнцүү.

Паскалын гурвалжинтай адил юм.

#include <iostream> using namespace std; int main(){ int a, b, c[30][30], i, j; cin >> a >> b; for (i = 0; i <= 10; i++){ c[i][0] = 1; c[i][1] = i; for (j = 2; j <= i; j++) c[i][j] = c[i - 1][j] + c[i - 1][j - 1]; } cout << c[a][b] << endl; return 0; }