BigString问题

标题:BigString问题

问题描述:
在这里插入图片描述
思路:结合下图,可以知道,可以转化成求最大的斐波拉契数列的最大值问题;
在这里插入图片描述下面是代码:

	#include  <bits/stdc++.h>
	#define LEN 88  //这里定义成88,是因为经过测算,数列最多为86项;
	下面在for循环中由第87项可以求出第86项,值得注意的是下面的小于88,也可以转换成<=87;
	
	char base[]="T.T^__^";
	int main()
	{	
		long long int fib[LEN];
		fib[0]=3;
		fib[1]=4;
		
		
		for(int i=2; i<	LEN; i++)
			fib[i]=fib[i-1]+fib[i-2];
			
			
		long long int n;
		printf("输入一个数:");
		
		
		while(true)
		{
		scanf("%d",&n);
		while(n>7)
		{
			int i=0;
	    	while(i<LEN&&fib[i]<n)  //这里是寻找比n小的最大的斐波拉契值;
			i++;
			n-=fib[i-1];	//这里要减去1
		}	
		printf("%c\n",base[n-1]);
	   }
	  
		return 0;
       }

程序运行结果:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值