37 条题解
-
34
今天依然是分享两种方法,因为今天的标签是分支问题,所以我更喜欢第一种方法
方法①
- 用万能开头文或者 cmath 头文件
- 定义 double 型的变量 n,并输入
- 用 sqrt(某数) 函数可以得出某数的开平方,开平方就是把两个一样的数相乘等于另一个数,就叫做另一个数的开平方
- 注意,如果不是整数要用向下取整可以用到 floor(某数) 函数,可以实现向下取整,再和原数进行判断即可
上代码吧!(况且下面的哥们有个地方还写错了……)
#include <bits/stdc++.h> using namespace std; int main() { double n; cin >> n; if (floor(sqrt(n)) == n) cout << "Y"; else cout << "N"; return 0; }
方法②
- 可以运用 for 循环语句来做
- 依次便利从 1 ~ n 的值,如果 i * i == n 那么直接输出 Y ,并且结束代码运行
- 如果知道循环结束都没有打印,说明没有平方数,那么就在循环外打印 N 并且结束代码运行
上代码!* 2
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; for(int i = 1; i <= n; i++) { if (i * i == n) { cout << "Y"; return 0; } } cout << "N"; return 0; }
-
5
哈喽哇,这又㕛叒叕是一道数学题啊
来来来,上新手都能看懂的代码🚀️
#include <bits/stdc++.h> using namespace std; int main() { int s = 0 , n; cin >> n; for (int i = 0; i <= n; i++) { if (i * i == n)//如果一个数的平方是n,那n就是平方数 { cout << "Y"; s = 1; break;//知道n是平方数之后就不需要继续遍历了,直接跳出循环 } } if (s != 1) cout << "N";//如果循环完毕都没有找到n的算术平方根,那么它就不是平方数啦 return 0; }
点赞之后再食用吧
-
2
当我们做错了,又看到只有一个测试点,那就试,看记录,记录会指出正确答案 所以方法一:
#include <bits/stdc++.h> int main(){std::cout<<"N";}
当然,投机取巧是不对的,我们应当掌握方法,用for循环测试他就可以出答案
#include <bits/stdc++.h> using namespace std; int main(){ int n;cin>>n; for (int i = 1; i < n; i++) { if (i * i == n) { cout << "Y"; return 0; } } cout << "N"; }
sqrt函数吗……因为我太懒,所以懒得写。嘿嘿。 Thanks for watching.
信息
- ID
- 1114
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 2
- 标签
- 递交数
- 2470
- 已通过
- 1466
- 上传者