诺亚方舟——第二天

第二天
学习内容!!!!!!!!!!!!!
——————————————————————————————————————————————————————————————————————————————————————————————————————
这一次我们来了解循环吧
在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分钟吧
还是很高兴都做了出来的!
那么明天就继续加油吧!——明天有新生杯(希望超常发挥嘻嘻!!!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值