青科赛 初中组 AI+智能算法

1、

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
struct node{
	float pre;
	int next;
	long long val;
}a[6];
int main(){
	string s1[6];
	cout<<"Input the data of 5 patients :"<<endl;
	for(int i = 1;i<=5;i++){
		cin>>s1[i];
	} 
	for(int i=1;i<=5;i++){
		float k = 0;
		int j = 0;
		while(s1[i][j] != '.'){
			k = k*10+s1[i][j]-'0';
			j++;
		}
		j++;
		int cifang = 1;
		while(s1[i][j] != 'e'){
			k = k + (float (s1[i][j]- '0'))/pow(10,cifang);
			cifang++;
			j++;
		}
		a[i].pre = k;
//		s1[i][j] == 'e'  123.23e10
		j++;
		int next = 0;
		while(j<s1[i].size()){
			next = next*10+s1[i][j]-'0';
			j++;
		}
		a[i].next = next;
		a[i].val = a[i].pre * pow(10,a[i].next); 
	}
	for(int i=1;i<5;i++){
		for(int j=i+1;j<=5;j++){
			if(a[i].val < a[j].val){
				swap(a[i],a[j]);
			}
		}
	}
	cout<<"The risk of covid-19 transmission from high to low is as following :"<<endl;
	for(int i=1;i<=5;i++){
		if(a[i].next <10){
			cout<<a[i].pre<<"e+00"<<a[i].next<<endl;
		}else if(a[i].next <100){
			cout<<a[i].pre<<"e+0"<<a[i].next<<endl;
		}else{
			cout<<a[i].pre<<"e+"<<a[i].next<<endl;
		}
	}
}

### 少年技创新大算法思维训练题及其解题思路 #### 一、关于中的算法思维题目特点 少年技创新大(简称)通常会涉及一些基础的算法设计和逻辑推理能力测试。这些题目往往围绕以下几个方面展开:字符串处理[^1]、数值计算[^5]、数组操作[^4]以及简单的动态规划或贪心算法应用[^2]。 例如,在蓝桥杯系列竞中,“最大购物优惠”问题通过模拟实际生活场景来考查选手对于条件分支语句的应用能力和多维度约束下的最优方案寻找技巧;而像“求十位数字”的这类基础型试题,则侧重于检验参者是否能够熟练运用基本算术运算完成指定任务。 #### 二、典型例题解析 以下是几个具有代表性的例子并附带相应解答: ##### (一)最大购物优惠 **描述**: 给定若干商品名称列表,判断是否存在满足特定模式的商品组合可以获得额外折扣。 ```cpp #include <iostream> #include <vector> using namespace std; bool checkDiscount(const vector<string>& items, const string& pattern){ bool found = false; for(auto item : items){ if(item.find(pattern)!=string::npos){found=true;break;} } return found; } int main(){ int m,n; cin>>m>>n; vector<string> goods(m); for(int i=0;i<m;++i)cin>>goods[i]; while(n--){ string ptn;cin>>ptn; cout<<(checkDiscount(goods,ptn)?'1':'0')<<endl; } return 0; } ``` 此代码片段实现了基于子串匹配原则判定是否有符合条件的产品存在功能. ##### (二)求数字之和 **描述**: 输入任意整数N,输出其两倍值作为结果表示该位置前后相邻两个自然数总和等于原数本身情况下的替代表达形式之一. ```cpp #include <iostream> using namespace std; int main(){ long num; cin >> num; cout << (num * 2)<< endl; return 0; } ``` 上述实现非常简洁明了地完成了既定目标即直接返回输入参数加倍后的产物即可达成预期效果. #### 三、常用训练方法建议 为了更好地准备此类比项目可以从以下几个方向着手努力提升自我水平: - **扎实基础知识功底建设** 不断复习巩固计算机学领域内的核心概念比如数据结构(链表栈队列哈希表树图等),常见排序查找技术等等这些都是构建更高级别解决方案不可或缺的基础构件. - **广泛参与在线评测平台练习活动** 利用LeetCode,HackerRank,CodingGame等多种资源定期参加各类挑战积累实战经验逐步提高解决未知难题的能力. - **深入研究历年优秀作品案例分享资料** 查阅往期获奖队伍提交的技术文档视频教程等内容学习他们是如何构思架构最终形成完整产品的整个过程从而借鉴其中精华部分融入自己的创作当中去.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值