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

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

Войти
Регистрация
Восстановить пароль
 
lil21
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 6
#1

Найти размеры всех прямоугольников, удовлетворяющих условию - C++

20.12.2011, 22:21. Просмотров 1025. Ответов 9
Метки нет (Все метки)

задачи на си:
1) найти размеры всех прямоугольников, площадь которых равна заданному натуральному числу S и стороны которых выражены натуральными числами. При этом решения, которые получаются перестановкой размеров сторон считать одинаковыми.
2) Даны три слова. Напечатать их общие буквы. Повторяющиеся буквы каждого слова не рассматривать.

 Комментарий модератора 
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 22:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти размеры всех прямоугольников, удовлетворяющих условию (C++):

Обнаружение всех объектов класса, удовлетворяющих условию - C++
Итак, рассмотрим отдельный пример, схожий с моей проблемой. У меня есть отдельный класс, который принимает определенные переменные и...

Найти два числа, удовлетворяющих условию - C++
Исходные данные В единственной строке находится целое число N, 1 ≤ N ≤ 109. Результат Следует вывести два целых положительных числа A...

Найти номер минимального элемента массива; найти сумму элементов, удовлетворяющих условию - C++
1. Найти номер минимального элемента массива. 2. Найти сумму элементов массива, расположенных между первым и вторым от- рицательными...

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде) - C++
#include<iostream> #include<math.h> using namespace std; int main() { int y = 0; for(int i = -21; i < -99; i+=3) ...

Найти произведение элементов, удовлетворяющих условию 0 < tan < 1 - C++
есть задача...найти произведение элементов удовлетворяющий условию 0&lt;tan&lt;1...дан массив...который должен содержаться в файле...т.е....

Найти количество элементов массива, удовлетворяющих условию 1<b[i]<m - C++
В массиве b(25), сформированном случайным образом, найти количество элементов, удовлетворяющих условию 1&lt;b&lt;m, где 1 и m - заданные...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6359 / 5923 / 1920
Регистрация: 18.12.2011
Сообщений: 15,223
Завершенные тесты: 1
20.12.2011, 22:23 #2
А в чем нужна помощь? Алгоритм? Или проблемы с языком?

По первой задаче.
Делаете цикл for(int i=1;i<=s;i++)
Если s делится нацело на i, то прямоугольник подходит.

По второй. Делаете 3 вложенных цикла по i,j,k.
Если a[i]==b[j]==c[k], то буква общая
lil21
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 6
20.12.2011, 22:27  [ТС] #3
проблемы с языком.. ну или хотя бы алгоритм решения..
zss
Модератор
Эксперт С++
6359 / 5923 / 1920
Регистрация: 18.12.2011
Сообщений: 15,223
Завершенные тесты: 1
21.12.2011, 08:16 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int i=1;i<=s;i++)
{
    if(s%i==0)
       printf("a=%d, b=%d подходит\n",i,s/i);
}
char a[100],b[100],c[100];
...
for(int i=0;i<strlen(a);i++)
for(int j=0;j<strlen(b);j++)
for(int k=0;k<strlen(c);k++)
    if(a[i]==b[j] && b[j]==c[k] )
        printf("Буква %c общая\n",a[i]);
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.12.2011, 08:43 #5
Цитата Сообщение от zss2 Посмотреть сообщение
for(int i=1;i<=s;i++)
{
if(s%i==0)
printf("a=%d, b=%d подходит\n",i,s/i);
}
заменить на:
C++
1
2
3
4
5
for(int i=1;i<=(int)sqrt((double)s);i++)
{
    if(s%i==0)
       printf("a=%d, b=%d подходит\n",i,s/i);
}
и не забыть подключить библиотеку:
#include <cmath>
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
21.12.2011, 09:09 #6
Думаю, что лучше (int)sqrt((double)s) присвоить отдельной переменной до цикла, иначе этот корень будет вычисляться на каждой итерации.
Байт
Эксперт C
15984 / 10252 / 1536
Регистрация: 24.12.2010
Сообщений: 19,341
21.12.2011, 10:27 #7
zss2,
Цитата Сообщение от lil21 Посмотреть сообщение
Повторяющиеся буквы каждого слова не рассматривать.
Я бы завел "шкалу" char sk[256], Обнулил бы ее в начале
C
1
2
3
4
if(a[i]==b[j] && b[j]==c[k] && sk[a[i]]==0 ) {
    printf("Буква %c общая\n",a[i]);
   sk[a[i]] = 1;
}
Добавлено через 1 минуту
Конечно
C
1
unsigned char a[100], b[100], c[100];
lil21
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 6
22.12.2011, 16:59  [ТС] #8
Спасибо вам, очень помогли!
Alex Ann
0 / 0 / 0
Регистрация: 24.02.2012
Сообщений: 3
24.02.2012, 11:28 #9
А как реализовать "исключение" повторяющихся вариантов на Паскале?
Antony_Chet
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 16
17.11.2016, 09:07 #10
Здраствуйте! А можно всю программу целиком написать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2016, 09:07
Привет! Вот еще темы с ответами:

Найти произведение элементов массива, удовлетворяющих условию - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: а) произведение элементов, не равных нулю; б) произведение...

Найти количество элементов на четных местах, удовлетворяющих условию - C++
В массиве T(30), сформированном случайным образом, найти количество элементов, стоящих на четных местах, удовлетворяющих условию a&lt;T...

В заданной матрице найти суммы элементов, удовлетворяющих условию - C++
Дана действительная квадратная матрица порядка . Рассмотрим те элементы, которые расположены в строках, начинающихся с отрицательного...

Найти количество элементов последовательности удовлетворяющих заданному условию - C++
Дана последовательность целых чисел, за которой следует 0. Найти количество элементов этой последовательности, кратных ее первому элементу.


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

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

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