洛谷水题推荐(p9913)C++

Water probelm 

https://www.luogu.com.cn/problem/P9913

一:题意

给定一个正整数 n,问一个正方形能否被分割为 n 个小正方形(不要求大小相等),输出 Yes 或 No

二:分析

        切出的正方形不要求大小相等,通过洛谷题解不难得知,你可以不停的在正方形里画十字。

        而每画一道,我们就会发现:多出了3个小正方形。故更大的n都可以通过更小的n        +3来满足。

        举例:n=5时,下面有一个n=2帮你垫着呢。

                   n=6时,上一个n就等于3。

                   n=8时,上一个n就等于5。

        

        然后我们发现,例子中的2,3,5是无法通过找替死鬼的方法构成的。从更高的n向下追溯时,2,3,5不是最终结果,不一定要用画十字来解决,但n直接等于2,3,5时就无法将它们划为正方形。

        故得出:除n=2,3,5外,n皆可实现。代码如下:

                

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,x;
	cin>>x;
	while(x--)
	{
		cin>>n;
		if(n==2||n==3||n==5)
	cout<<"No"<<endl;
	else
	cout<<"Yes"<<endl;
	}
	return 0;
}

创作不易,望多加支持。

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值