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

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

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

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

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

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

Получение первых n строк треугольника Паскаля - C++
Помогите пожалуйста решить задачу: составить программу получения первых n строк треугольника Паскаля. Пробовал сам, но ничего даже близкого...

Вывести n-ную строку треугольника паскаля - C++
По условию нужно вывести н-ую строку треугольника Паскаля. Вот,что у меня получилось, но ничего не работает, в чем ошибка? #include...

Вывести первые а строк треугольника Паскаля - C++
Ввести а. Вывести первые а-строк треугольника Паскаля. Помогите найти ошибку. Добавлено через 15 секунд #include <iostream> ...

Найти количество нечетных чисел в n-ой строке треугольника Паскаля - C++
Во входном файле содержится число n (0 ≤ n ≤ 2⋅10^9). Выходной файл должен содержать одно число — количество нечетных чисел в n-ой строке...

Удаление строки до последнего пробела (включительно) - C++
День добрый всем! Дана строка, содержащая слова отделенные одним или несколькими пробелами. Задача: удалить последовательно все части...

Какой код треугольника Паскаля через цыкл, который выводит определенное количество строк? - C++
Какой код треугольника Паскаля через цыкл, который выводит определенное количество строк?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
10.11.2009, 20:02  [ТС] #2
эхххх, так и никто и не решил, обидно.
0
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
10.11.2009, 20:26 #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;
 }
0
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
10.11.2009, 20:57 #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;
}
0
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
11.11.2009, 19:57  [ТС] #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
1
KiriGun
0 / 0 / 0
Регистрация: 21.10.2016
Сообщений: 9
10.02.2017, 00:03 #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");
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2017, 00:03
Привет! Вот еще темы с ответами:

Получения из строки числа - C++
Добрый вечер.Помогите пожалуйста я пишу калькулятор, и у меня приключилась беда, я ввожу приклад 5+8-4.8+12, мне нужно как то прочитать...

Макрос для получения текста текущей строки - C++
Макрос __LINE__ возвращает номер текущей строки. А можно ли как-то получить текст этой строки?

Составить программу которая переворачивает каждое слово строки (перевод с Паскаля) - C++
uses crt; var i,j:Integer; s,sl,b:string; begin write ('Vvedite slovo '); Readln(s); sl:=''; s:=s+' '; for i:=1 to...

Переписать с Паскаля на C++. Найти максимальный элемент каждой строки массива и его индексы - C++
Кто может переписать данную прогу на C++? Найти максимальный элемент каждой строки массива и его индексы (всего массива и его индексы). ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.02.2017, 00:03
Ответ Создать тему
Опции темы

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