纪中学习之(第八季)DAY EIGHT

博主分享了在纪中学习的第8天,完成了四道编程题的解答。第一题涉及求解指数问题,通过不断%10和log10计算得出结果;第二题是棋盘游戏,利用递归判断棋子位置;第三题需找出数列最小值;第四题与歌词匹配相关,要求找出猜出歌名的歌词数量。明日将继续更新,敬请期待。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

今天和往常一样,没什么不同,喔,对了,我们宿舍的五年级的回家了

今天一共做了四题

第一题

题目大意

给出一个超大正整数s,求出n, 使得n为正整数,且n^n=s


输入样例

387420489

输出样例

9


解题思路

这道题一开始我在比赛的时候,想打表,但看数据太大就放弃了
后来用一种方法,就是不断的%10看它有几位数,再log10一下,i再乘于,即可

程序如下

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<string>
using namespace std;
string a;
long long i;
int main()
{
	freopen("yy.in","r",stdin);
	freopen("yy.out","w",stdout);
	cin>>a;
	for (i=1;i<=a.size();i++)//枚举长度
	{
		if (floor(i*log10(i)+1)==a.size()) //判断位数并相乘
		   break;//如果找到就退出
	}
	cout<<i;
	fclose(stdin);
	fclose(stdout);
	return 0;
}




第二题

题目大意

游戏设有一个黑方和一个白方。游戏桌面是正方形的,包含8行8列…
被包夹有白子之间没有空格才能变
为这个游戏设计一个程序,计算一步棋中黑方能转变的白子数量的最大值…


输入样例




…BW…
…WB…


输出样例

1


解题思路

这道题其实可以用递归来做,也可以用搜索,我是用递归来做的
其实就是来判断一个棋子的八个方向是否有白旗,再看是否有另外的黑旗来夹击

程序如下

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int dx[9]={-1,-1,-1,0,0,1,1,1};
const int dy[9]={-1,0,1,-1,1,-1,0,1};
int b[1001][1001],ans,sum,re;
char a;
int dfs(int t,int x,int y)
{
	dfs=dfs(t,x+dx[t],y+dy[t]);
	return dfs;
}
int main()
{
	for(int i=1;i<=8;i++)
	{
		for(int j=1;j<=8;j++)
		{
			a=getchar();
			if(a=='B') b[i][j]=1;
			if(a=='.') b[i][j]=0;
			if(a=='W') b[i][j]=2;
		}
	}
	for(int i=1;i<=8;i++)
	{
		for(int j=1;j<=8;j++)
		{
			for(int k=1;k<=8;k++)
			if(b[i][j]==0)
			{
				ans=dfs(k,i+dx[i],j+dy[j]);
				if(ans>0)
				{
					sum=sum+ans;
				}
			}
		}
		if(sum>re) 
		{
			re=sum;
		}
		sum=0;
	}
	printf("%d",sum);
	fclose(stdin);
	fclose(stdout);
	return 0;
}



第三题

题目大意

现在有n个数列,每个数列都有一个值,问到第n个数列是最小值


输入样例

6
1
2
3
4
5
6

输出样例

12




第四题

题目大意

专辑里的某首歌播放出至少一半歌词的时候猜出歌名
给出歌名和专辑名,看看Mirko在这首歌的哪个点上(在多少个单词之后)猜出歌名…


输入样例

3
sedam
gladnih
patuljaka
7
sedam
dana
sedam
noci
sedam
gladnih
godina

输出样例

6




今天就到这了······

明天继续更新·································

距离纪中培训倒计时2天(也就是更新到第10季)

敬请期待······

多多关注

谢谢········

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值