星星历c++

题目描述

不管是基于太阳的阳历,还是基于月亮的阴历,或者阴阳合历的农历,都太复杂了。

XXX自己发明了一套历法,取名为“星星历”。星星历采用每年 3 星,每星 120 天的方式纪年。

XXX定义现实的 2024 年 1 月 18 日为“星星历”的第一天,即 1 年 1 星 1 日,表示为 1 1 1,请问“星星历”的第 n 天是哪年哪星哪日?

输入

第一行一个整数 n。

输出

一行空格隔开的三个整数,为“星星历”的第 n 天的表示。

如输入100 则输出1 1 100

如输入200 则输出1 2 80

如输入300 则输出1 3 60

样例输入

400

样例输出

2 1 40

提示

数据规模与约定

对于 100%100% 的数据,1≤n≤10^{6}

  • 子任务 1(30 分):1≤n≤120。
  • 子任务 2(30 分):1≤n≤360。
  • 子任务 3(40 分):没有特殊限制。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n;
    cin>>n;
    long long a=0,y=1,m=1,d=0;
    for(int i=1;i<=n;i++){
    	a++;
    	if(a<=120){
    		d=a;
		}
		if(a==121){
			a=1;
			d=a;
			m++;
			if(m==4){
				y++;
				m=1;
			}
		}
	}
	cout<<y<<" "<<m<<" "<<d;
    return 0;
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是消灭星星游戏中查找相同星星位置的递归代码示例,使用C++语言实现: ```c++ #include <iostream> #define MAXN 100 int n; // 游戏面板的行数和列数 char board[MAXN][MAXN]; // 游戏面板数组 // 递归查找相邻的相同星星 void dfs(int x, int y, char c) { if (x < 0 || x >= n || y < 0 || y >= n) return; // 越界 if (board[x][y] != c) return; // 不是相同的星星 board[x][y] = '#'; // 标记为已访问过 dfs(x + 1, y, c); // 向右查找 dfs(x - 1, y, c); // 向左查找 dfs(x, y + 1, c); // 向下查找 dfs(x, y - 1, c); // 向上查找 } // 查找相同星星的入口函数 bool findSameStars() { bool flag = false; // 是否找到相同的星星 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (board[i][j] != '#') // 如果该星星未被访问过 { char c = board[i][j]; // 记录该位置的星星颜色 dfs(i, j, c); // 递归查找相邻的相同星星 flag = true; // 找到了相同的星星 } } } return flag; } int main() { // 读入游戏面板 std::cout << "请输入游戏面板的行数和列数:"; std::cin >> n; std::cout << "请输入游戏面板,用字母表示不同颜色的星星:" << std::endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { std::cin >> board[i][j]; } } int count = 0; // 统计找到的相同星星组数 while (findSameStars()) { count++; // 将已经标记过的星星从游戏面板中删除 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (board[i][j] == '#') board[i][j] = '-'; } } } std::cout << "一共找到了 " << count << " 组相同的星星!" << std::endl; return 0; } ``` 在这段代码中,使用dfs函数递归地查找相邻的相同星星。每次查找到一个相同星星时,将其标记为已访问过,然后继续向该星星四周查找相同星星。当所有相同星星都被标记过后,退出递归函数,返回到findSameStars函数中。在findSameStars函数中,如果找到了相同的星星,则将已经标记过的星星从游戏面板中删除,并继续查找相同星星。如果没有找到相同的星星,则退出while循环,输出统计结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值