Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 88, средняя оценка - 4.92
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
#1

Получения треугольника Паскаля до n-й строки включительно - C++

09.11.2009, 17:16. Просмотров 11519. Ответов 5

Написать программу для получения треугольника Паскаля до n-той строчки включая!
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
помогите резить задачу самыми простыми способами, без сложных операторов и библиотек.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2009, 17:16     Получения треугольника Паскаля до n-й строки включительно
Посмотрите здесь:

C++ Вывести первые а строк треугольника Паскаля
Получение первых n строк треугольника Паскаля C++
Составить программу которая переворачивает каждое слово строки (перевод с Паскаля) C++
C++ Какой код треугольника Паскаля через цыкл, который выводит определенное количество строк?
матрица разделена диагоналями на 4 треугольника, элементы верхнего и нижнего треугольника нулевые C++
Определить номер строки и столбца наименьшего из элементов верхнего треугольника. C++
Вывести n-ную строку треугольника паскаля C++
C++ Найти количество нечетных чисел в n-ой строке треугольника Паскаля
C++ Получения из строки числа
Удаление строки до последнего пробела (включительно) C++
Переписать с Паскаля на C++. Найти максимальный элемент каждой строки массива и его индексы C++
Макрос для получения текста текущей строки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
10.11.2009, 20:02  [ТС]     Получения треугольника Паскаля до n-й строки включительно #2
эхххх, так и никто и не решил, обидно.
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
10.11.2009, 20:26     Получения треугольника Паскаля до n-й строки включительно #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Apmyp /7,
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 #define N 1000
 long c[N];
 int main () {
    long n, i, j;
    scanf ("%ld",&n);
    for(i = 1; i <= n ; i++) c[i] =0;
    c[0] = 1;
    for(j = 1 ; j <= n; j++)
       for(i = j; i >= 1 ; i--)
          c[i] = c[i-1] + c[i];
    for(i = 0; i <= n ; i++)
       printf ("%ld ", c[i]);
    return 0;
 }
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
10.11.2009, 20:57     Получения треугольника Паскаля до n-й строки включительно #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот еще вариант, используя формулу из комбинаторики, нахождения сочетаний из N по K. Если перечислять все сочетания К из N результат N-ой строки как раз выходит таким каким требуется!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream.h>
 
using namespace std;
                    
double Cnk(int N,int K)
{
return ( (N<K) ? 0 : ((K==0) ? 1 : ((N-K+1) / double(K) * Cnk(N,K-1))) );
}
                  
int main()
{
    int n;
    cin>>n;
 
for (int j = 0; j <= n; j++) {
  for (int i=0; i <=j ; i++)
   cout<<Cnk(j,i)<<" ";
  cout<<"\n";
}
    std::cin.get();
    std::cin.get();
 
    return 0;
}
Если тяжело осмыслить рекурсивную функцию Cnk, то можно использовать не рекурсивную:

C++
1
2
3
4
5
6
7
double Cnk(int N,int K)
{
  double Sum = 1;
  for (int i = 1; i <= K; i++)
    Sum*=(N-i+1)/float(i);
  return Sum;
}
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
11.11.2009, 19:57  [ТС]     Получения треугольника Паскаля до n-й строки включительно #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <conio.h>
#include <iostream.h>
 void main ()
 {  int A[100];
    int n, i, j;
    cout<<"Vvesti koli4estvo elementov: ";cin>>n;
    for(i = 1; i <= n ; i++) A[i] =0;
    A[0] = 1;
    for(j = 1 ; j <= n; j++)
    for(i = j; i >= 1 ; i--)
    A[i] = A[i-1] + A[i];
    for(i = 0; i <= n ; i++)
       cout<<"  "<<A[i];
    getch();
 }
как сделать что бы результат выводился бы вот так вот:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
KiriGun
0 / 0 / 0
Регистрация: 21.10.2016
Сообщений: 9
10.02.2017, 00:03     Получения треугольника Паскаля до n-й строки включительно #6
Ребят, вот код для треугольника с выводом в файл, работает до 31
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main(int argc, char *argv[]){
    setlocale(0,"rus");
    cout<<"Треугольник паскаля"<<endl;
    int n=2,i,j,mas[31][31];
        for(i=0;i<31;i++){
        for(j=0;j<31;j++){
        mas[i][j]=0;
        }
    }
    mas[0][0]=1;
    mas[1][0]=1;
    mas[1][1]=1;
    for(i=2;i<=31;i++){
        mas[i][n]=1;
        mas[i][0]=1;
        for(j=1;j<n;j++){
        mas[i][j]=mas[i-1][j]+mas[i-1][j-1];
        }
        n++;
    }
    n=0;
//  
FILE* file=fopen("kiri.txt","w");
    for(i=0;i<31;i++){
    
        for(j=0;j<=n;j++){
    fprintf(file,"%i \t",mas[i][j]);
        }
        n++;
            fprintf(file,"\n");
    }
    fclose(file);
    cout<<"Треугольник записан в файл kiri.txt \n";
int k;
cout<<"Открыть файл? (1-Да/ 2-нет)=>";cin>>k;
switch(k){
    case 1:{    system("kiri.txt");
 
        break;
    }
    case 2:{ cout<<"закрываю программу"<<endl;
        break;
    }
}
 
    system("pause");
}
Yandex
Объявления
10.02.2017, 00:03     Получения треугольника Паскаля до n-й строки включительно
Ответ Создать тему
Опции темы

Текущее время: 15:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru