fork(2) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. // (1)再帰を使って、異なるn個の整数からr個の整数を取り出す組み合わせの数 nCr を求める関数 int combination( int n, int r)を作成せよ
  5. // またこの関数を用いて 5Cr (r=0 ~ 5)を出力するプログラムを作成せよ。なお次の関係式を用いること。
  6. // nCr=n-1Cr-1+n-1Cr,nC0=nCn=1,nC1=n
  7. int combination( int n, int r)
  8. {
  9. if(r==0)return 1;
  10. if(n==r)return 1;
  11. if(r==1)return n;
  12. return combination(n-1,r-1)+ combination(n-1,r);
  13. }
  14.  
  15. // (2) 3つのint型整数 n1, n2, n3を昇順( n1 < n2< n3 )に並べ替える関数 void sort3(int *n1, int *n2, int *n3)を作成せよ。 
  16. // この関数を用いて、main内で宣言された3つのint型整数 a1, a2, a3 の値を並べ替え 、その結果を表示するプログラムを作成せよ。 a1, a2, a3の初期値は、 a1=3, a2=1, a3=0とする。
  17. void sort3(int *n1, int *n2, int *n3)
  18. {
  19. int n[3];
  20.  
  21. n[0]=*n1;
  22. n[1]=*n2;
  23. n[2]=*n3;
  24. for(int i=0; i<3; i++) {
  25. for(int j=i+1; j<3; j++) {
  26. if(n[i]>n[j]) {
  27. int t=n[i];
  28. n[i]=n[j];
  29. n[j]=t;
  30. }
  31. }
  32. }
  33. *n1=n[0], *n2=n[1], *n3=n[2];
  34. }
  35.  
  36. // (3)要素数n個のint型配列 a の各成分の値を2倍したものを別の配列bに代入する関数 void atob(int *a, int *b, int n) を作成せよ。ここでa,bにはポインタを用いること。
  37. // この関数を用いてint型配列 va=(1, 2, 1) の各成分の値を2倍したものを別の配列 vbに代入し、vbの各成分を出力するプログラムを作成せよ。
  38. void atob(int *a, int *b, int n)
  39. {
  40. for(int i=0; i<n; i++)b[i]=a[i]*a[i];
  41. }
  42.  
  43. int main()
  44. {
  45. //(1)
  46. cout << endl << "(1)" << endl;
  47. for(int r=0; r<=5; r++)
  48. cout << "r=" << r << ':' << combination(5,r) << endl;
  49.  
  50. //(2)
  51. cout << endl << "(2)" << endl;
  52. int a1=3, a2=1, a3=0;
  53. cout << "before sort = " << a1 << ' '<< a2 << ' ' << a3 << endl;
  54. sort3(&a1,&a2,&a3);
  55. cout << "after sort = " << a1 << ' '<< a2 << ' ' << a3 << endl;
  56.  
  57. //(3)
  58. cout << endl << "(3)" << endl;
  59. int va[]= {1, 2, 1}, vb[3];
  60. for(int i=0; i<3; i++)cout << "va(" << i << ")=" << va[i] << endl;
  61. atob(va,vb,3);
  62. cout << endl;
  63. for(int i=0; i<3; i++)cout << "vb(" << i << ")=" << vb[i] << endl;
  64. }
Success #stdin #stdout 0.01s 2728KB
stdin
Standard input is empty
stdout
(1)
r=0:1
r=1:5
r=2:10
r=3:10
r=4:5
r=5:1

(2)
before sort = 3 1 0
after  sort = 0 1 3

(3)
va(0)=1
va(1)=2
va(2)=1

vb(0)=1
vb(1)=4
vb(2)=1