Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

In N số hạng đầu của dãy Newman-Conway

Dãy Newman-Conway được dùng để tạo ra dãy số nguyên sau:

1 1 2 2 3 4 4 4 5 6 7 7 8 8 8 8 9 10 11 12

Công thức dùng để tạo dãy Newman-Conway cho n số là:

P(n) = P(P(n - 1)) + P(n - P(n - 1))
Where, p(1) =p(2) =1

Thuật toán

START
Step 1 -> Input biến n(vd. 20)
Step 2 -> Khai báo biến i, p[n+1], p[1]=1, p[2]=1
Step 3 -> Vòng lặp For i=3 và i<=n và i++
  Set p[i] = p[p[i - 1]] + p[i - p[i - 1]]
  Print p[i]
Step 4 -> Kết thúc Vòng lặp For
STOP

Ví dụ

#include<stdio.h>

int main() {
  int n = 20,i;
  int p[n + 1];
  p[1] = 1;
  p[2] = 1;
  printf("Newman-Conway Sequence is :");
  printf("%d %d ",p[1],p[2]);
  for (i = 3; i <= n; i++) {
    p[i] = p[p[i - 1]] + p[i - p[i - 1]];
    printf("%d ",p[i]);
  }
  return 0;
}

Kết quả

Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra đầu ra sau.

Newman-Conway Sequence is :1 1 2 2 3 4 4 4 5 6 7 7 8 8 8 8 9 10 11 12