首页 > 编程语言 >15C++循环结构-while循环(2)——教学

15C++循环结构-while循环(2)——教学

时间:2025-01-04 11:22:47浏览次数:1  
标签:10 角谷 15 实数 小数点 C++ 计数法 int 循环

一、while语句的应用

(第44课 角谷猜想)参考视频1
问题:对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1,这就是由日本数学家角谷静夫发现的角谷猜想,又称为3n+1猜想。如取一个数字6,根据上述公式,得出6→3→10→5→16→8→4→2→1。试编一程序,验证角谷猜想。
流程图:

二、双精度实数double及科学计数法

(第45课 蝴蝶效应)参考视频1
一只蝴蝶在巴西轻拍翅膀,可以导致一个月后美国得克萨斯州的一场龙卷风,一只海鸥扇动翅膀足以改变天气,这是美国气象学家爱德华·诺顿·罗伦兹在1963年提出的蝴蝶效应,表明初始条件的极小偏差,将会引起结果的极大差异。n的初始值设为1,让它产生极小偏差。减0.01后得到的值是0.99,加0.01后得到的值是1.01,以后每次得到的值都是自己乘自己。试编一程序算一算,第15次后分别是多少?
流程图如图:

其中1.15048e-009、7.08229e+008等数字是什么意思啊?

实数又称为浮点数,类型包括正实数、负实数、实数零,如12.8、-6.3、0.0都是实数。其中0.0是实数零,而0是整数零。实数有两种表示方法,一种是日常表示法,如3.14159、-0.6等;另一种是科学计数法,如7.9e+2、6.18e-1等。
科学计数法是采用指数形式表示实数,每个数由只含一位整数的数和指数两部分组成。如:

1.15048e-009=0.00000000115048(小数点向左移动9位)
7.08229e+008=708229000(小数点向右移动8位)
double为双精度实数(双精度浮点数),可表示的范围为-1.79e308~1.79e308。

三、分数化为小数

(第46课 精益求精)参考视频1
问题:在科学研究的领域,对数据的精度求非高,有时需计算到小数点后10位,甚至小数点后100位,做到精益求精。
试编一程序,把分数1/7转化成小数的形式,要求计算结果精确到小数点100位。
先看下尼克初学时编写的程序:

#include<iostream>
using mamespace sid;
int main()
{
  cout<<1/7<<endl;
  cout<< 1.0/7<endl;
  reurn 0;
}

其中(double)1/7。运用了强制类型转换运算符,将结果转换成双精度浮点数,但还不能输出小数点后100位,要解决此问题,我们先来研究一下1/7的运算过程。
1÷7=0·········1
1×10÷7=1······3(商1,小数点后第1位上的数字)
3×10÷7-4······2(商4,小数点后第2位上的数字)
2×10÷7=2······6(商2,小数点后第3位上的数字)
把上一次产生的余数扩大10倍,再除以7,得到的商就是当前数位上的数字。流程图如图:

#include <iostream>
using namespace std;
int main()
{
  int m,n,r,i=1;
  m=1;
  n=7;
  cout<<m/n<<'.';
  r=m%n;
  while(i<=100)
  {
    cout<<(r*10)/n;
  	r=(r*10)%n;
  	i++;
  }
  return 0;	
}

#include <iostream> 
using namespace std;
int main()
{
  int a,b,i;
  cout<<"0.";
  i=1;
  a=1;
  while(i<=100)
  {
    a*=10;
    b=a/7; 
    cout<<b;
    a%=7;
    i++;
  } 
  return 0;
}

标签:10,角谷,15,实数,小数点,C++,计数法,int,循环
From: https://www.cnblogs.com/citStudy/p/18651690

相关文章

  • list和字典哪个性能高?for循环下哪个性能高?为啥?
    在选择数据结构时,性能取决于具体的操作和使用场景。列表(List)和字典(Dictionary)是两种常见的数据结构,它们有不同的性能特性。以下是对这两种数据结构在不同操作下的性能比较,特别是针对for循环下的性能表现。列表(List)列表是一种有序的集合,通常用于存储一组元素,并按顺序访问这......
  • # 2024-2025-1 20241422 《计算机基础与程序设计》第15周学习总结
    2024-2025-120241422《计算机基础与程序设计》第15周学习总结作业信息这个作业属于哪个课程(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里(2024-2025-1计算机基础与程序设计第十三周作业)这个作业的目标信息系统、数据库与SQL、人工智能与专家系统、人工......
  • C++中的字符( char )、字符数组( char[] )、字符串( std::string )
    字符(char)定义:char是C++中的基本数据类型,用于表示单个字符。char在内存中通常占用一个字节(8位)。在ASCII编码系统中,每个字符都对应一个唯一的整数值,char类型可以存储这些值来表示相应的字符。charch='A';//存储字符'A'与其他类型的联系:字符本质上是一个小整数类......
  • Spring MVC注解故障追踪记15
    SpringMVC是美团点评很多团队使用的Web框架。在基于SpringMVC的项目里,注解的使用几乎遍布在项目中的各个模块,有Java提供的注解,如:@Override、@Deprecated等;也有Spring提供的注解,如:@Controller、@Service、@Autowired等;同时还可能有自定义注解等。注解一方面可以作为标记说明使......
  • 循环结构
    循环结构while循环语法:while(布尔表达式){//循环内容}只要表达式为true,循环就会一直执行下去大多数情况会让循环停止下来,需要一个表达式失效的方式来结束循环少部分情况需要循环一直执行,比如服务器的请求相应监听循环条件一直为true就会造成无限循环【死循环】,正常业务......
  • C++面向对象编程:纯虚函数、抽象类、虚析构、纯虚析构
    纯虚函数的目的便是,父类不需要去实现,全部都是在子类中实现,有纯虚函数的话,就是抽象类,而且子类必须重写这个纯虚函数。可见以下代码:#include<iostream>usingnamespacestd;classami{public: virtualvoideat()=0;//纯虚函数,有纯虚函数的便是抽象类};classcat:......
  • C++ 面向对象编程:多态、虚函数原理
    多态的通用描述便是,使用父类指针调用函数,可以根据对象类型来调用对应类型函数,我们分几个步骤来理解,先看下类的占用空间,然后拓展到虚函数对应数组,最后理解多态的原理。我们先来看下在多态中没有任何成员变量的类大小为多大,其实如果没有任何成员变量的话,他大小按理说来应该是零,......
  • 算法解析-经典150(双指针、滑动窗口)
    文章目录双指针1.验证回文串1.答案2.思路2.判断子序列1.动态规划解法2.双指针3.两数之和II-输入有序数组1.答案2.思路4.盛最多水的容器1.答案2.思路5.三数之和1.答案2.思路滑动窗口1.长度最小的子数组1.答案2.思路2.无重复字符的最长子串1.答案2.思路3......
  • 算法解析-经典150(矩阵、哈希表)
    文章目录矩阵1.有效的数独1.答案2.思路2.螺旋矩阵1.答案2.思路3.旋转图像1.答案2.思路4.矩阵置零1.答案2.思路哈希表1.赎金信1.答案2.思路2.同构字符串1.答案2.思路3.单词规律1.答案2.思路4.有效的字母异位词1.答案2.思路5.字母异位词分组1.答案2.思路......
  • 【华为OD-E卷 - 组合出合法最小数 100分(python、java、c++、js、c)】
    【华为OD-E卷-组合出合法最小数100分(python、java、c++、js、c)】题目给一个数组,数组里面哦都是代表非负整数的字符串,将数组里所有的数值排列组合拼接起来组成一个数字,输出拼接成的最小的数字输入描述一个数组,数组不为空,数组里面都是代表非负整数的字符串,可以是0开头,......