欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

floor()函数与ceil()函数 continue的使用

程序员文章站 2024-02-27 16:54:15
...

floor(x) 其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)
floor(n)对n向负方向舍入
​floor(3.14) = 3.0
floor(9.999999) = 9.0
floor(-3.14) = -4.0
floor(-9.999999) = -10
floor(3.5)=3;
floor(-3.2)=-4

语法:FLOOR(number,significance)

将参数Number沿绝对值减小的方向去尾舍入,使其等于最接近的significance的倍数

如果A1=22.5,则公式”=FLOOR(A1,1)” 结果就是22,22最接近1的倍数

如果A1=22.5,则公式”=FLOOR(A1,3)” 结果就是21,21最接近3的倍数

如果A1=25.8,则公式”=FLOOR(A1,3)” 结果就是24,24最接近3的倍数

double ceil(double x) ; 返回大于或者等于指定表达式的最小整数

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    for(int a=1;a<=9;a++)
     for(int b=0;b<=9;b++)
     {
        int n=a*1100+b*11;
        int m=floor(sqrt(n)+0.5);
        //假设经过大量的计算后,由于误差的影响,整数1变成了0.9999999999,floor的结果会是0而不是1。
        所以,为了减少误差,就改成四舍五入,即:floor(x+0.5)
        if(m*m==n)  printf("%d\n",n);
     }
    return 0;
}

continue:
continue是指跳回for循环的开始,执行调整语句并判断循环条件(即,直接进行下一次循环),而break是指直接跳出循环
在双层循环中,

for(i=1;i<10;i++)
{
    for(j=1;j<7;j++)
      if(j==5)
      {
        continue;
      }
}

continue 和 break的区别就是 continue只跳过当前循环 j==5时执行到continue; j=6时还会继续执行
如果是break的话,就会直接跳过内层for循环,开始下一次外层的循环。

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
   for(int x=1; ;x++)
   {
     int n=x*x;
     if(n<1000) continue;
     if(n>9999) break;
     int hi=n/100;
     int lo=n%100;
     if(hi/10 == hi%10 && lo/10 == lo%10)
     printf("%d\n",n); 
   }
    return 0;
}