题解分享
题解分享简介
跑步锻炼(结果填空) - 题解
include
using namespace std;
bool fun(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return true;
else
return false;
}
int main()
{
int week = 6;
int num = 0;
int mon[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
for (int year = 2000; year <=2020; year++)
{
if (fun(year))
mon[2] = 29;
else//因为下一年不是闰年要变回28
mon[2]=28;
for (int month = 1; month <= 12; month++)
{
for (int day = 1; day <= mon[month]; day++)
{
if (day == 1 || week == 1)
num += 2;
else
num++;
week = (week) % 7 + 1;
if (year == 2020 && month == 10 && day == 1)
{
cout << num << endl;
return 0;
}
}
}
}
return 0;
}
查看全文
0
0
1
1
跑步锻炼(结果填空) - 题解
```
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int mon[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool run(int x)
{
if((x%4==0&&x%100!=0)||x%400==0)return true;
return false;
}
int main()
{
int week=6,sum=0;
for(int y=2000;y<=2020;y++)
for(int m=1;m<=12;m++)
{
if(run(y))mon[2]=29;
else mon[2]=28;
for(int d=1;d<=mon[m];d++)
{
if(d==1||week==1)sum+=2;
else sum++;
week=(week+1)%7;//week=0周日 往后导
if(y==2020&&m==10&&d==1)
{
cout<<sum<<endl;
return 0;
}
}
}
return 0;
}
```
查看全文
0
0
1
7
跑步锻炼(结果填空) - 题解
使用日期模板
```
#define
#include <bits/stdc++.h>
using namespace std;
int main()
{
int sum = 0;
int a = 6;
for (int year = 2000; year <= 2020; year++)
{
for (int month = 1; month <= 12; month++)
{
for (int day = 1; day <= 31; day++)
{
int flag = 0;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
;
}
else if (month == 2)
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
if (day > 29) break;
}
else
{
if (day > 28) break;
}
}
else
{
if (day > 30)
{
break;
}
}
int b = (a++ - 1) % 7 + 1;//当天是星期几
if (b == 1)
{
flag = 1;
}
a = (a - 1) % 7 + 1;
if (day == 1 || flag == 1)
{
sum += 2;
}
else
{
sum++;
}
if (year == 2020 && month == 10 && day == 1)
{
cout << sum << endl;
return 0;
}
}
}
}
}
```
查看全文
0
0
1
1
跑步锻炼(结果填空) - 题解
```
import java.util.*;
import java.io.*;
import java.time.*;
public class Main {
public static void main(String[] args){
int res = 0;
int flag = 0;
boolean flag2 = true;
for(int years = 2000;years <=2020;years++){
if(!flag2) break;
for(int months = 1;months<=12;months++){
if(!flag2) break;
for(int days = 1;days<=31;days++){
if(months == 1 || months == 3 ||months == 5 ||months == 7 ||months == 8 ||months == 10 ||months == 12 ){
}
else if (months == 2){
if(years %4 ==0 && years %100 != 0 || years %400 == 0){
if(days>29) {
break;
}
}
else if(days>28) break;
}
else if(days > 30) break;
if(years == 2020 && months == 10 && days == 1){
flag2 = false;
}
if(days == 1 || flag%7==2){
res+=2;
flag++;
}
else{
res++;
flag++;
}
if(!flag2) break;
}
}
}
System.out.println(res);
}
}
```
查看全文
0
0
0
1
跑步锻炼(结果填空) - 题解
include
using namespace std;
define endl '\n'
using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
using u128 = unsigned __int128;
const int MOD = 1e9 + 7;
// 判断是否是闰年
bool isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 获取某个月份的天数
int getDaysInMonth(int year, int month) {
switch (month) {
case 2:
return isLeapYear(year) ? 29 : 28;
case 4: case 6: case 9: case 11:
return 30;
default:
return 31;
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int cnt = 0; // 计数器
int today = 6; // 2000年1月1日是星期六(假设)
// 遍历2000年到2020年
for (int year = 2000; year <= 2020; year++) {
// 遍历1月到12月
for (int month = 1; month <= 12; month++) {
// 遍历1日到该月的最大天数
for (int day = 1; day <= getDaysInMonth(year, month); day++, today++) {
// 如果到达2020年10月1日,输出结果并退出
if (year == 2020 && month == 10 && day == 1) {
cout << cnt + 2 << endl;
return 0;
}
// 判断条件:today % 7 == 1 或 day == 1
if (today % 7 == 1 || day == 1) {
cnt += 2;
} else {
cnt += 1;
}
}
}
}
return 0;
}
查看全文
0
0
0
1
跑步锻炼(结果填空) - 题解
```
#include<bits/stdc++.h>
using namespace std;
int m1[]={0,1,3,5,7,8,10,12};
int m2[]={0,4,6,9,11};
int main(){
int year=2000,month=1,day=1;
int year2=2020,month2=10,day2=2;
int sum=0;
int num=0;
while(1){
if(day==1||num%7==2) sum+=2;
else sum++;
day++;
num++;
for(int j=1;j<=7;j++){
if(month==m1[j]&&day==32){
month++;
day=1;
break;
}
}
for(int j=1;j<=4;j++){
if(month==m2[j]&&day==31){
month++;
day=1;
break;
}
}
if(month==2){
if((year%4==0&&year%100!=0)||year%400==0){
if(day==30){
month++;
day=1;
}
}
else{
if(day==29){
month++;
day=1;
}
}
}
if(month==13){
month=1;
year++;
}
if(year==year2&&month==month2&&day==day2) break;
}
cout<<sum<<endl;
return 0;
}
```
查看全文
0
0
0
1
跑步锻炼(结果填空) - 题解
```
#include<bits/stdc++.h>
using namespace std;
int main()
{
int sum=0;
int count=0;
for(int year=2000;year<=2020;year++)
{
for(int month=1;month<=12;month++)
{
for(int day=1;day<=31;day++)
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
;
}
else if(month==2)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
if(day>29) break;
}
else
{
if(day>28) break;
}
}
else
{
if(day>30)
{
break;
}
}
count++;
if(count%7==3||day==1)
{
sum+=2;
}
else
{
sum+=1;
}
if(year==2020&&month==10&&day==1)
{
cout<<sum;
return 0;
}
}
}
}
return 0;
}
// 1=6 2=7 3=1 4=2 5=3 6=4 7=5
```
查看全文
0
0
0
1
跑步锻炼(结果填空) - 题解
```
#include<bits/stdc++.h>
using namespace std;
int main(){
int flag=0;
int sum=0;
int count=0;
for (int year = 2000; year <= 2022; year++) {
for (int month = 1; month <= 12; month++) {
int daysInMonth = 31; // 默认每个月有31天
// 设置不同月份的天数
if (month == 4 || month == 6 || month == 9 || month == 11) {
daysInMonth = 30; // 4月、6月、9月、11月有30天
} else if (month == 2) {
// 处理2月(闰年判断)
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysInMonth = 29; // 闰年
} else {
daysInMonth = 28; // 非闰年
}
}
// 循环遍历每个月的天数
for (int day = 1; day <= daysInMonth; day++) {
// 处理当前日期(年、月、日)
// 例如,你可以打印日期或存储日期
count++;
if ((count-1)%7 == 2||day==1) {
sum=sum+2;
}else {
sum=sum+1;
}
if (year==2020&&month==10&&day==1) {
cout<<sum;
return 0;
}
}
}
}
return 0;
}
```
查看全文
0
0
0
1
跑步锻炼(结果填空) - 题解
```
#include<bits/stdc++.h>
using namespace std;
int run_sum;
int main() {
int a=6; //从星期六开始
for(int year = 2000; year <= 2020; year++)
for(int month = 1; month <= 12; month++)
for(int day =1; day <= 31; day++) {
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12);
else if(month == 2) {
if((year%4 == 0 && year%100 != 0) || year % 400 == 0) {
if(day > 29) break;
} else {
if(day > 28) break;
}
} else {
if(day > 30) break;
}
int flag=0; //定义一个标志
//先求当前的日期是星期几 (1~7: 星期一~星期天)
int b = (a++ - 1) %7 + 1;
if(b==1) flag = 1;
//如果某天是周一或者月初(1日,为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
if(day == 1 || flag == 1) run_sum+=2;
else run_sum++;
if(year == 2020 && month==10 && day == 1){
cout<<run_sum<<endl;
return 0;
}
}
return 0;
}
```
查看全文
0
0
0
2
跑步锻炼(结果填空) - 题解
```
public class Main {
public static void main(String[] args) {
boolean f = false;
int ans = 0;
int week = 0; //记录今天是星期几
for (int year = 2000; year <= 2022; year++) {
for (int month = 1; month <= 12; month++) {
for (int day = 1; day <= 31; day++) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10
|| month == 12) {
; //这些月份是31天
} else if (month == 2) {
//闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
if (day > 29)
//闰年的2月有29天
break;
} else {
if (day > 28) {
//不是闰年的2月有28天
break;
}
}
} else {
//不是2月和if月份的 , 其他月份有30天
if (day > 30) {
break;
}
}
if (year == 2000 && month == 1 && day == 1) {
f = true;
week = 5;
}
week = (week + 1) % 7; //记录今天是星期几
if (f) {
if (week == 1 || day == 1) { //day=1表示每月月初
ans += 2;
} else {
ans++;
}
}
if (year == 2020 && month == 10 && day == 1) {
System.out.println(ans);
return;
}
}
}
}
}
}
```
查看全文
0
0
0
2



