20/07/04 第三天

20/07/04 第三天

小问题

在平时的编程中,我们往往会用到一些循环去构建算法,如for、while、do…while之类的,像for这样的语句还比较好,但是,另外两种就不好说了。大家可能常常会用了循环之后就开始“卡机”了。很大一部分原因是因为你在编写循环的时候,忘记在条件再次被检测之前更新条件了。如:

#include<iostream>

using namespace std;

int main(){
int N;
int wan_num = 2 , sum;
int yin_zi[100];
int i , j;
cin >> N;
while(wan_num<=N){
for(j = 1, i = 0; j < wan_num; j++) {
if(wan_num%j==0){
yin_zi[i] =j;
i++;
}
}
for(j = 0, sum = 0;j < i; j++){
sum += yin_zi[j];
}
if(wan_num == sum) {
cout << wan_num << " its factors are ";
for(j = 0, sum=0; j < i;j++)
cout << yin_zi[j] << " ";
cout<<endl
}
}
return 0;
}

上面这个是检索完数的程序,乍的一看,确实没有问题,思路也没有错,但是你用断点一步步检测就会发现在最后几行代码那忘记更新检测的条件了(如果没有断点将非常难找出这个bug),这会大大耗费在比赛中的时间。因此,想出了一个办法,在写循环体之前,把条件更新的语句先写好,再些循环体。

get新知识

1

晚上做算法的时候学到了怎么编写算法去计算平方根,并且将得到的数值精确到一定程度,部分代码如下:

 cin >> a;
 x = a / 2;
 x1 = x;
 x = (x1 + a / x1) / 2;
 while (abs(x1 - x) >= 1e-6) {
  x1 = x;
  x = (x1 + a / x1) / 2;
 }

这是计算a的平方根x的算法。

2

get到了怎么按一定位数输出double和float类型

double PT;
//保留n位小数//	
cout << fixed <<setprecision(n) << PT <<endl;	

//保留m位有效位
cout << setprecision(m) << PT <<endl;

今天上午家里停电了,下午才来电,就紧接着开始答辩,一直搞到晚上才结束,收完作业上交之后,才有时间做其他的事情。明天加油!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值