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;
}
创作不易,望多加支持。