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

Раскраска таблицы умножения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с неструктурированными данными http://www.cyberforum.ru/cpp-beginners/thread1154904.html
Для исследования различных методов доступа к файлам данных необходимо выполнить следующие подготовительные действия: 1) Создать в Блокноте следующий текстовый файл input_1.txt: У меня спросили:...
C++ B zero идентификатор не найден Приветствую всех, столкнулся с необходимостью использовать bzero(). Вот такой код не работает. Тут http://www.opennet.ru/docs/RUS/libc/libc-4.html сказано подключать #include <string.h>. Однако... http://www.cyberforum.ru/cpp-beginners/thread1154895.html
C++ Как открыть проект в программе, не запуская саму программу
Ребят, такая тема: У меня есть программа, в которой я создаю проекты, но как сделать так, что бы при запуске созданного мной проекта 1) Запускалась моя программа, можно ли сделать программно, что...
Переполнение при расчете функции C++
рассчитываю функцию, получается переполнение, что делается в таких случаях? // raschet # include <iostream.h> # include <conio.h> # include <math.h> long double x(int k,long double...
C++ Не выполняется условие сравнения строк с номером телефона http://www.cyberforum.ru/cpp-beginners/thread1154871.html
Вот программа через структуру, ввод данных: Фамилия Имя, дата рождения, номер телефона. Когда вводит в запросе номер телефон он должен выдавать всю информацию о человеке с которым совпал номер...
C++ Вычислить площадь простого многоугольника В первой строке вводится одно число N (3≤N≤100000). Далее в N строках задается по паре чисел – координаты очередной вершины простого многоугольника в порядке обхода по или против часовой стрелки. ... подробнее

Показать сообщение отдельно
Live4Sky
6 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 42

Раскраска таблицы умножения - C++

23.04.2014, 09:08. Просмотров 1058. Ответов 10
Метки (Все метки)

Раскраска таблицы умножения
(Время: 1 сек. Память: 16 Мб Сложность: 32%)
Кликните здесь для просмотра всего текста

Таблицей умножения назовем таблицу размера n строк на m столбцов, в которой на пересечении i-ой строки и j-ого столбца стоит число i∙j (строки и столбцы нумеруются с единицы).

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

Процесс покраски чисел можно условно разбить на четыре этапа. На первом этапе все числа красятся в черный цвет. На втором - все четные числа красятся в красный цвет, на третьем – все числа, делящиеся на 3, красятся в зеленый цвет, на четвертом - все числа, делящиеся на 5, красятся в синий цвет.

Директор школы хочет знать, какое количество картриджей для принтеров необходимо закупить для печати таблиц. Поэтому ему необходима информация о том, сколько чисел какого цвета будет в одной раскрашенной таблице умножения n на m. Напишите программу, решающую задачу подсчета соответствующих количеств.
Входные данные

Входной файл INPUT.TXT содержит два натуральных числа n и m (1 ≤ n,m ≤ 1000).
Выходные данные

В первой строке выходного файла OUTPUT.TXT выведите количество чисел, покрашенных в красный цвет, во второй - в зеленый, в третьей - в синий, в четвертой - в черный. Следуйте формату, приведенному в примерах.

Пример
10 10
RED : 21
GREEN : 39
BLUE : 36
BLACK : 4
5 2
RED : 5
GREEN : 2
BLUE : 2
BLACK : 1

вот мой код, валится на втором тесте где ошибка не могу понять.прошу помощи
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
#include<iostream>
#include<fstream>
using namespace std;
int main(){
    ifstream cin("input.txt");
    ofstream cout("output.txt");
    int red = 0, blue = 0, green = 0, black = 0,n, m;
    cin >> n >> m;
    for (int i = 0; i < n; ++i){
        for (int j = 0; j < m; ++j){
            if ((i*j % 2 == 0) && (i*j % 3!=0)&&(i*j % 5!=0))
                red++;
            else if ((i*j % 2 != 0) && (i*j % 3 == 0) && (i*j % 5 != 0))
                green++;
            else if ((i*j % 2 != 0) && (i*j % 3 != 0) && (i*j % 5 == 0))
                blue++;
            else if ((i*j % 2 == 0 && i*j % 3 == 0)&& (i*j % 5 != 0))//на 2 и на 3
                green++;
            else if ((i*j % 2 == 0 &&i*j % 5 == 0) && (i*j % 3 != 0))//на 2 и на 5
                blue++;
            else if ((i*j % 3 == 0 && i*j % 5 == 0)&&(i*j % 2 != 0)) //на 3 и на 5
                blue++;
            else 
                black++;
        }
    }
    //black = n*m - red - green - blue;
    cout << "RED" <<" "<<":"<< " " << red << endl;
    cout << "GREEN" << " " << ":" << " " << green << endl;
    cout << "BLUE" << " " << ":" << " " << blue << endl;
    cout << "BLACK" <<" "<<":"<< " " << black << endl;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru