Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
6 / 4 / 1
Регистрация: 19.04.2011
Сообщений: 185
1

Задача про год

07.02.2013, 21:48. Просмотров 675. Ответов 10
Метки нет (Все метки)

Есть такая задача. Дано число k (от 1 до 365). присвоить значение n (от 0 до 6) в зависимости от того, на какой день недели приходиться k-тый день года, учитывая то, что 1 января понедельник.

Я сначала подумал что можно сделать через остаток от деления. Но это будет работать до 3 января. Намекните какими способами можно ее сделать.

Добавлено через 12 минут
Например 3 число и все числа с шагом +7 являются средами. Как это можно записать?

Добавлено через 12 минут
C++
1
for(i=1,i<365,i+7){if (k=1+i) {n=0}
вот так прокатит?

называется тихо сам с собою я веду беседу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2013, 21:48
Ответы с готовыми решениями:

vb про высокосный год
Дано число N. Определить, является ли высокосный год с таким номером. Год является высокосным, если...

программа про год и месяц
известен год и номер месяца рождения человека, а также год и номер месяца сегоднешнего дня....

Анекдоты про Новый Год
пара-тройка боянов 1. Ни один из известных видов северных оленей не летает. Но существует 300000...

Задача про взлом кода из книги Эрика Фримена про основы javascript в конце 5 главы.
читаю книгу Эрика Фримена про основы javascript.В конце 5 главы есть задачка про взлом кода.Никак...

10
162 / 162 / 22
Регистрация: 23.02.2011
Сообщений: 347
07.02.2013, 21:55 2
C++
1
<день года> % 7
не знаю, как ты там с остатком делил, у меня все работает
1
Модератор
Эксперт по электронике
8321 / 6174 / 828
Регистрация: 14.02.2011
Сообщений: 21,452
07.02.2013, 21:59 3
Понедельник это 0 или 1

Цитата Сообщение от OrlovEagle Посмотреть сообщение
Я сначала подумал что можно сделать через остаток от деления.
правильно подумал

Цитата Сообщение от OrlovEagle Посмотреть сообщение
Но это будет работать до 3 января.
Это почему еще?

Цитата Сообщение от OrlovEagle Посмотреть сообщение
Добавлено через 12 минут
Цитата Сообщение от OrlovEagle Посмотреть сообщение
называется тихо сам с собою я веду беседу
А ты думал за 12 минут толпа набежит?
0
6 / 4 / 1
Регистрация: 19.04.2011
Сообщений: 185
07.02.2013, 22:01  [ТС] 4
Algiz, действительно работает. я просто остатки от 1 до 7 вводил, а надо от 0 до 6.
0
Модератор
Эксперт по электронике
8321 / 6174 / 828
Регистрация: 14.02.2011
Сообщений: 21,452
07.02.2013, 22:07 5
Цитата Сообщение от OrlovEagle Посмотреть сообщение
я просто остатки от 1 до 7 вводил, а надо от 0 до 6.
Переведи
А лучше код покажи( когда не получалось)
0
6 / 4 / 1
Регистрация: 19.04.2011
Сообщений: 185
07.02.2013, 22:16  [ТС] 6
if (i%7==7) {n=7}
0
Модератор
Эксперт по электронике
8321 / 6174 / 828
Регистрация: 14.02.2011
Сообщений: 21,452
07.02.2013, 22:23 7
Цитата Сообщение от OrlovEagle Посмотреть сообщение
if (i%7==7) {n=7}
ну дак у тебя никогда не выполнится условие
остаток от деления на 7
0 1 2 3 4 5 6(заметил числа что тебе и нужны)
если понедельник это 1
то просто
C++
1
n=i%7;
а если понедельник это 0
то
C++
1
n=(i-1)%7;
0
6 / 4 / 1
Регистрация: 19.04.2011
Сообщений: 185
07.02.2013, 22:33  [ТС] 8
ну да, я так и сделал. просто не обратил внимание сначала. остаток от деления на 7 не может быть 7 =)
0
1 / 1 / 0
Регистрация: 10.02.2012
Сообщений: 6
07.02.2013, 22:43 9
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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <string>
#include <fstream>
#include <conio.h>
#include <sstream>
#include <vector>
#include <cmath>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int mm [31]={31,28,31,30,31,30,31,31,30,31,30,31};
    int m,d;
    int den_ned;
 
    cout << "Vvedite dd: ";
    cin >> d;
    cout << "Vvedite mm: ";
    cin >> m;
    int sum=0;
    for(int i=0;i<m-1;i++)
    {
        sum=sum+mm[i];
        cout << "sum"<<sum<<endl;
    }
    sum=sum+d;
    den_ned=sum%7;
    cout << "sum"<<sum<<endl;
    switch (den_ned)
       {
        case 0: cout << "Monday"   <<endl; break;
        case 1: cout << "Tuesday"  <<endl; break;
        case 2: cout << "Wednesday"<<endl; break;
        case 3: cout << "Thursday" <<endl; break;
        case 4: cout << "Friday"   <<endl; break;
        case 5: cout << "Saturday" <<endl; break;
        case 6: cout << "Sunday   "<<endl; break;
       }
 
    system("pause");
    
}
1
6 / 4 / 1
Регистрация: 19.04.2011
Сообщений: 185
07.02.2013, 23:08  [ТС] 10
да, через case самое то.
0
Эксперт С++
5039 / 3100 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
11.02.2013, 15:45 11
Цитата Сообщение от OrlovEagle Посмотреть сообщение
да, через case самое то.
Самое то скорее через массив:
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
#include <iostream>
using namespace std;
 
 
int main()
{
    int mm [31]={31,28,31,30,31,30,31,31,30,31,30,31};
    const char *days[] = {"Monday", "Tuesday", "Wednesday", "Thursday",
                          "Friday", "Saturday", "Sunday"};
    int m,d;
    int den_ned;
 
    cout << "Vvedite dd: ";
    cin >> d;
    cout << "Vvedite mm: ";
    cin >> m;
    int sum=0;
    for(int i=0;i<m-1;i++)
    {
        sum=sum+mm[i];
        cout << "sum"<<sum<<endl;
    }
    sum=sum+d;
    den_ned=sum%7;
    cout << "sum"<<sum<<endl;
    cout << days[den_ned] << endl;
    
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2013, 15:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Песни про Новый год и Рождество
Давайте скажем кто какие песьни про новый год или рождество знает.Мне лично нравится песня Jingle...

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он...

Задача хранения информации о погоде за 1 год
Задача на enum'ы + массивы: Решить задачу хранения информации о погоде за 1 год. Погода...

Олимпиадная задача по информатике 1997 год
Доброго времени суток. Попалась олимпиадная задача по информатике за 97 год. Возьмем...

Задача.цена акции каждый год поднималась на 10%
помогите пожалуйста решить задачу!! цена акции каждый год поднималась на 10%. Если сейчас цена...

Задача с диском из Бауманской олимпиады 2001 год
С другом возник спор по поводу решения задачи, задача известная. Заранее спасибо за помощь.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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