2019蓝桥杯A组C++题目

2019 蓝桥杯 A组题目解析

试题A:平方和

【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。注意,平方和是指将每个数分别平方后求和。
请问,在 1 到 2019 中,所有这样的数的平方和是多少?

#include<iostream>
using namespace std;
int num[4] = {
   1,2,0,9}; 
int isIn(int value){
   
    //拆分后的个位数
	int sub;
    //拆分
	while (value){
   
		//得到当前整数 尾位数
		sub = value % 10;
		//切割这一整形
		value /= 10;
		//输出
//		cout << sub;
		for(int k = 0;k < 4;k++){
   
			if(sub == num[k]){
   
				return 1;
			}
		}
	}
	return 0;
}

int check(int value){
   
	while(value){
   
		if(value % 1 == 0 || value % 2 == 0 || value % 9 == 0 || value % 10 == 0){
   
			return true;
		}
	}
	return false;
}
int main(){
   
	//终于知道为什么要 long long
//	int result = 0;
	long long result = 0;
	for(int i = 1;i <= 2019;i++){
   
		if(check(i)){
   
			result += i*i;
		}
	}
	cout << result << endl;
}

试题B:数列求值

【问题描述】
给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求
第 20190324 项的最后 4 位数字。

#include <iostream>
using namespace std;
//已知项数求前c项 
void fibo(int num){
   
	int a = 1,b = 1,c;
	cout << 1 << " " << 1 << " ";
	for(int i = 3;i <= num;i++){
   
		c = a + b;
		b = a;
		a = c;
		cout << c << " ";
	}
	cout << endl;
	// 打印出第10项 
	cout << c << endl;
}
void prefix_sum(long long int N){
   
	long long int a = 1,b = 1,c = 1;
    long long int d;
    cout << a << " " << b << " " << c << " ";
    for(int i=4;i <= N;i++)
    {
   
        d = (a+b+c) % 10000;
        a = b;
        b = c;
        c = d;
        cout << d << " ";
    }
    cout << endl;
    //打印出第10项 
    cout<< d <<endl;
}
void prefix_sum2(long long int target){
   
	long long int a = 1<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值