zoukankan      html  css  js  c++  java
  • 蓝桥杯--2013--黄金连分数(大数)

    

    4.黄金连分数

    黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。
    对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!
    言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。
    比较简单的一种是用连分数:

     1
     黄金数 = ---------------------
     1
     1 + -----------------
     1
     1 + -------------
     1
     1 + ---------
     1 + ...

    这个连分数计算的“层数”越多,它的值越接近黄金分割数。
    请你利用这一特性,求出黄金分割数的足够精确值,要求四舍五入到小数点后100位。
    小数点后3位的值为:0.618
    小数点后4位的值为:0.6180
    小数点后5位的值为:0.61803
    小数点后7位的值为:0.6180340
    (注意尾部的0,不能忽略)
    你的任务是:写出精确到小数点后100位精度的黄金分割值。
    注意:尾数的四舍五入! 尾数是0也要保留!
    显然答案是一个小数,其小数点后有100位数字,请通过浏览器直接提交该数字。
    注意:不要提交解答过程,或其它辅助说明类的内容

    为什么要用斐波那契额数列,还没有学java不懂啊

    #include<cstdio>
    #include<cstdlib>
    #include<iostream>
    using namespace std;
    int main()
    {
    	unsigned long long f[500];
    	f[0] = 0;
    	f[1] = 1;
    	for (int i = 2; i<100; i++)
    		f[i] = f[i - 1] + f[i - 2];
    	unsigned long long x = f[48];
    	unsigned long long y = f[49];
    	int a[101];
    	for (int i = 0; i<101; i++)
    	{
    		a[i] = x / y;
    		x = (x%y) * 10;
    		cout << a[i];
    		if (a[i] == 0 && i<3)
    			cout << '.';
    	}
    	cout << "
    ";
    	system("pause");
    	return 0;
    }

  • 相关阅读:
    微信小程序开发入门(二)
    微信小程序开发入门(一)
    django入门与实践(续)
    django入门与实践(开)
    Python六剑客
    python入门(二十讲):爬虫
    python入门(十九讲):多进程
    ES6箭头函数
    ES6
    数据库常用命令
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273398.html
Copyright © 2011-2022 走看看