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

Программа на определение числа - C++

Восстановить пароль Регистрация
 
Soniks
3 / 3 / 0
Регистрация: 24.10.2011
Сообщений: 44
24.10.2011, 22:38     Программа на определение числа #1
Добрго дня или ночи, помогите составить код программы, уже 5 день пошёл, ничего путного в голову не лезет?
Последовательность т.н. треугольных чисел определяется следующим образом: первый член последовательности равен 1, второй на 2 больше первого, третий на 3 больше второго и т. д. Т.е. треугольными являются числа 1, 3, 6, 10, 15, ... . Пользователь вводит число, определить является ли оно треугольным.
Всем большое спасибо за помощь!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Revol'veR
 Аватар для Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
24.10.2011, 22:48     Программа на определение числа #2
Формулу хотя бы вывели что ли
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
24.10.2011, 22:58     Программа на определение числа #3
Вариант с массивом:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
int Triangle(int *a, int n)
{
   int i;
   if (a[0] != 1)
      return 0;
   for (i = 1; i < n && a[i] - a[i-1] == i+1; i++)
      ;
   return i >= n;
}
 
int main()
{
   int a[5] = {1, 3, 6, 10, 15};
   printf("%s\n", Triangle(a, 5) ? "yes" : "no");
   getchar();
   return 0;
}
Добавлено через 4 минуты
Вариант с вводимым числом:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int Triangle(int a)
{
   int i, j;
   for (i = j = 1; i < a; i += ++j)
      ;
   return i == a;
}
 
int main()
{
   int a;
   scanf("%d", &a);
   printf("%s\n", Triangle(a) ? "yes" : "no");
   getchar();
   return 0;
}
Revol'veR
 Аватар для Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
24.10.2011, 23:03     Программа на определение числа #4
Что-то не совсем пойму как с ним работать, после ввода данных и нажатия Enter прога вылетает(закрывается)
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
24.10.2011, 23:03     Программа на определение числа #5
Цитата Сообщение от Revol'veR Посмотреть сообщение
Что-то не совсем пойму как с ним работать, после ввода данных и нажатия Enter прога вылетает(закрывается)
Поставьте еще один getchar() или getch(). Во втором алгоритме только одно число надо ввести и проверить его на "треугольность".
Revol'veR
 Аватар для Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
24.10.2011, 23:10     Программа на определение числа #6
Второй вариант с лишним getch() заработал)
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.10.2011, 05:51     Программа на определение числа #7
C
1
scanf("%d%*с", &a);
и один getchar()
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
25.10.2011, 07:09     Программа на определение числа #8
Цитата Сообщение от Revol'veR Посмотреть сообщение
Второй вариант с лишним getch() заработал)
Так он и так и работал, просто не приостанавливался)
Soniks
3 / 3 / 0
Регистрация: 24.10.2011
Сообщений: 44
25.10.2011, 20:50  [ТС]     Программа на определение числа #9
Цитата Сообщение от Olga_ Посмотреть сообщение
Вариант с массивом:

Вариант с вводимым числом:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int Triangle(int a)
{
   int i, j;
   for (i = j = 1; i < a; i += ++j)
      ;
   return i == a;
}
 
int main()
{
   int a;
   scanf("%d", &a);
   printf("%s\n", Triangle(a) ? "yes" : "no");
   getchar();
   return 0;
}
Спасибо Ольга, а в этом случае можно ли использовать while или do while?
Как бы это выглядело, я пытался переделать, что-то не получается.
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
25.10.2011, 21:06     Программа на определение числа #10
Цитата Сообщение от Soniks Посмотреть сообщение
Спасибо Ольга, а в этом случае можно ли использовать while или do while?
Как бы это выглядело, я пытался переделать, что-то не получается.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include<conio.h>
 
int Triangle(int a)
{
   int i, j;
   i = j = 1;
   while (i < a)
       i += ++j;
   return i == a;
}
 
int main()
{
   int a;
   scanf("%d", &a);
   printf("%s\n", Triangle(a) ? "yes" : "no");
   getch();
   return 0;
}
Soniks
3 / 3 / 0
Регистрация: 24.10.2011
Сообщений: 44
26.10.2011, 12:03  [ТС]     Программа на определение числа #11
Цитата Сообщение от Olga_ Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
#include<conio.h>
 
int Triangle(int a)
{
   int i, j;
   i = j = 1;
   while (i < a)
       i += ++j;
   return i == a;
}
Ольга не могли бы Вы разьяснить действие словами, что такое i и j,а?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 20:17     Программа на определение числа
Еще ссылки по теме:

C++ Определение четности числа
C++ Определение количества разрядов у числа
FOR и определение кратности числа C++
Программа для определение игрового адаптера C++
C++ Определение номера треугольного числа

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

Или воспользуйтесь поиском по форуму:
Soniks
3 / 3 / 0
Регистрация: 24.10.2011
Сообщений: 44
27.10.2011, 20:17  [ТС]     Программа на определение числа #12
Цитата Сообщение от Soniks Посмотреть сообщение
Ольга не могли бы Вы разьяснить действие словами, что такое i и j,а?
Уже не надо
Yandex
Объявления
27.10.2011, 20:17     Программа на определение числа
Ответ Создать тему
Опции темы

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