19年蓝桥杯B组 数列求值 数的分解

数列求值

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

给定数列 1, 1, 1, 3, 5, 9, 17,从第 4 项开始,每项都是前 3 项的和。

求第20190324 项的最后 4 位数字。

#include <iostream>
using namespace std;
 long long a[20190324]={0};/*必须全局变量  因为数组定义在main函数中 占用的内存来自栈 而栈有固定的大小 造成栈的溢出     而全局变量是在静态存储区内分配内存*/
int main()
{
  // 请在此输入您的代码
  
  a[0]=0;a[1]=a[2]=a[3]=1;a[4]=3;
  for(int i=5;i<=20190324;i++)
  {
    a[i]=(a[i-1]+a[i-2]+a[i-3])%10000;  //题目要求只要后四位 为了不越界 只对后四位进行运算 
  }
  cout<<a[20190324];
  return 0;
}

数的分解  40785 我爱这题目

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?

注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。

#include<iostream>
using namespace std;
bool f(int n)
{
	while(n)
	{
		int a=n%10;
		if(a==2||a==4)
		{
			return false;
		}
		n/=10; 
	}
	return true;
}

int main()
{
	int ans=0;
	for(int i=1;i<2019;i++)
	{
		if(f(i)!=false)
		{
		   for(int j=i+1;j<2019;j++)
		   {
		    	if(f(j)!=false)
				{
			    	for(int n=j+1;n<2019;n++)
			    	{
				         if(f(n)==true&&i+j+n==2019)
				         {
				         	ans++;
						 }
				    }
				} 
			
		   }
		}
	
		
	}
	cout<<ans;
	return 0;
	
 } 

上一篇:微服务的4个设计原则和19个解决方案


下一篇:53. Minimum Window Substring