第二天
学习内容!!!!!!!!!!!!!
——————————————————————————————————————————————————————————————————————————————————————————————————————
这一次我们来了解循环吧
在C语言中循环结构只有两种,分别是for , while
因为这次的语法知识较简单,直接进入主题吧!!!
题目分析:
1.2的幂
当然要用这节课的知识喽——循环
解法:
#include<stdio.h>
#include<math.h>
bool isPowerOfTwo(int n)
{
if(n<=0)
return false;
for(int i=0;i<=31;i++)
{
if(n==pow(2,i))
return true;
}
return false;
}
int main()
{
int n;
scanf("%d",&n);
if(isPowerOfTwo(n))
printf("TRUE!\n");
else
printf("FALSE!\n");
}
2.3的幂
解法:思路如上,只是改动了,几次幂和上限—3^20和2^31!!!!!!!!
#include<stdio.h>
#include<math.h>
bool isPowerOfThree(int n)
{
if(n<=0)
return false;
for(int i=0;i<=20;i++)
{
if(n==pow(3,i))
return true;
}
return false;
}
int main()
{
int n;
scanf("%d",&n);
if(isPowerOfTwo(n))
printf("TRUE!\n");
else
printf("FALSE!\n");
}
3.4的幂
解法:一样的,好像太水了哈!
#include<stdio.h>
#include<math.h>
bool isPowerOfFour(int n)
{
if(n<=0)
return false;
for(int i=0;i<=15;i++)
{
if(n==pow(4,i))
return true;
}
return false;
}
int main()
{
int n;
scanf("%d",&n);
if(isPowerOfTwo(n))
printf("TRUE!\n");
else
printf("FALSE!\n");
}
4.n的第k个因子
解法:你只需找到你想要到的那个位置的数,每找到一个因子就计数加一,
达到你的要求就返回这个值,全部遍历后,如果没找到,就直接返回-1!!!
int kthFactor(int n, int k){
int i;
int cnt = 0;
for(i = 1; i <= n; ++i) {
if(n % i == 0) {
++cnt;
if(cnt == k) {
return i;
}
}
}
return -1;
}
5.有效的完全平方数
思路:将n取根号后取整,如果再平方后与以前一样的话,那n就是完全平方数了!!!!
#include<stdio.h>
#include<math.h>
bool isPerfectSquare(int n)
{
return n==(int)sqrt(n)*(int)sqrt(n)?true:false;
}
int main()
{
int n;
scanf("%d",&n);
if(isPerfectSquare(n))
printf("TRUE!\n");
else
printf("FALSE!\n");
}
注意注意注意重头戏!!!!!!!!!
课后习题来喽!
——————————————————————————————————————————————————
1.力扣 剑指 Offer 64. 求1+2+…+n
int sumNums(int n){
return (int)(pow(n,2)+n)>>1;
}
2.力扣 231.2的幂
bool isPowerOfTwo(int n)
{
if(n<=0)
return false;
for(int i=0;i<=31;i++)
{
if(n==pow(2,i))
return true;
}
return false;
}
3.力扣 326.3的幂
bool isPowerOfThree(int n)
{
if(n<=0)
return false;
for(int i=0;i<=20;i++)
{
if(n==pow(3,i))
return true;
}
return false;
}
4.力扣 342.4的幂
bool isPowerOfFour(int n)
{
if(n<=0)
return false;
for(int i=0;i<=15;i++)
{
if(n==pow(4,i))
return true;
}
return false;
}
5.力扣 n 的第 k 个因子
int kthFactor(int n, int k){
int count=0;
for(int i=1;i<=n;i++)
{
if(n%i==0)
count++;
if(count==k)
return i;
}
return -1;
}
6.力扣 367. 有效的完全平方数
bool isPerfectSquare(int num){
return num==(int)sqrt(num)*(int)sqrt(num)?true:false;
}
————————————————————————————————————————————————————————————————
总结时间到!!!!
这次没用多长时间1个小时15分钟吧
还是很高兴都做了出来的!
那么明天就继续加油吧!——明天有新生杯(希望超常发挥嘻嘻!!!)