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

Поясните задачу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Русский ввод и русский вывод http://www.cyberforum.ru/cpp-beginners/thread370755.html
Я знаю, что для того, чтобы был виден русский язык, я использую команду setlocale(LC_ALL,"Russian") Для того, чтобы в переменные заносились русские символы, у меня получается только тогда, когда я не использую выше сказанную команду. Как-нибудь можно использовать русский ввод и вывод вместе?? Например: string a; cin >> a; cout << "Ваше имя: " << a; // Ваше имя Саша
C++ 3 в 1 Добрый вечер. Нужно написать программу ,находящую максимальный элемент и его номер.Затем найти произведение от первого 0ля до 2го нуля.И третье преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечётных позициях, а во второй половине-элементы стоявшие в чётных позициях. первую задачу я сделал, 2ую на половину.Если вместо нулей вписать любую... http://www.cyberforum.ru/cpp-beginners/thread370749.html
Коды символов одной и той же буквы различаются. [help] C++
тоесть если я делаю cout<<int('а'); где а-русская, он выводит код -32. И так до я -1; а если char c; cin>>c; cout<<int(c) и вводить русскую а, он выводит код -94. Проблема в кодировке? Что делать?
C++ протабулируйте функции. на C++
протабулируйте функции. Отрезок и шаг вводятся с клавиатуры: e^x-arctg(x)
C++ [C++] Ряд Тэйлора http://www.cyberforum.ru/cpp-beginners/thread370717.html
Здравствуйте, я бы хотел спросить, как решить уравнение: 1-(x^2/2)+(x^4/4)-(x^6/6)+(x^8/8)-... А то сказали решить, а по Ряду Тэйлора ничего толком не объяснили(
C++ Адреса и указатели Приветствую! Не могу понять, как работать с указателями и адресами для переменных. Если можно, как можно проще объясните, коль не сложно. Книгу читал но сути так и не понял. подробнее

Показать сообщение отдельно
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 692

Поясните задачу - C++

22.10.2011, 19:04. Просмотров 759. Ответов 2
Метки (Все метки)

Прошу разъяснить в задачи непонятные мне аспекты. Задача

Прямоугольник, стороны которого выражены натуральными числами M и N (1≤M, N ≤10000), разделен на квадраты размером 1*1. Найти число квадратов, пересекаемых диагональю прямоугольника (пересекает только тогда, когда делит его на две произвольные части).

Решение

Будем считать, что N (ось х) больше чем M (ось у). В противном случае обменяем их значения. Для каждого правой стороны каждого столбца (х=1,2 ....N-1) проверяем через какую строку проходит диагональ. Если через следующую (случай1), то количество клеток увеличиваем на 2, если через ту же (случай 2), что и предыдущая, то на 1. И если диагональ проходит через узел (случай 3), то результат не изменяется.



Вот такой код
с комментариями неясностей

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
#include<iostream>
#include <math.h>
#include<stdlib.h>
using namespace std;
int main ()
{ setlocale(LC_ALL,"Rus");
int n,m,c,y,y1,k,l; 
cout<<"Введите ширину прямоугольника --> ";
cin>>n;
cout<<"Введите длинну прямоугольника --> ";
cin>>m;
if(n<m)
 {c=m;m=n;n=c;}
y1=-1; 
k=0;
for(int x=1;x<n;x++) 
 {
  l=m*x%n; //Для чего эта операция конкретно и что она делает? Если попадается 0 то счета квадратов нет. 
  y=m*x/n; //Для чего эта операция конкретно и что она делает?  Если попадается 1, то считается только один квадрат
  if(l!=0) 
   {
       if(y==y1) 
       k=k+1;
  else 
       {k+=2;
       y1=y;
       }
   }
 }
cout<<k;
cin.get();
cin.get();
 return 0;
}
Миниатюры
Поясните задачу  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru