手算与思维题day02(C++)

文章包含三个编程实例,涉及字符串转换、查找特定数字并计算算数平方和,以及使用C++实现的成绩排序。展示了如何在C++中处理数字、字符串操作和数据结构应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例题1

思路1:将数字转化为字符串,看字符串中是否含有'2','0','1','9',有则算出数的平方加和

要注意算数平方和变量不能是int型,会溢出,要用long long型

#include <iostream>
#include <string>
using namespace std;
int main()
{
  int cnt = 0; //统计结果
  int sum = 0; //统计和
  long long sp_sum = 0; //算数平方和,用int型会溢出 
  for(int i = 1;i<=2019;i++){
    string s = to_string(i);
    for(int j=0;j<s.length();j++){
      if (s[j] == '2' || s[j] == '0' || s[j] == '1' || s[j] == '9'){
        cnt+=1; //这样的数有多少个
        sum += i; //它们的和是多少
        sp_sum += i*i;
        break;
      }
    }
  }
  cout<<sp_sum;
  return 0;
}

思路2:分别取出数的每一位,看是否等于2,0,1,9

#include <iostream>
#include <string>
using namespace std;
int main()
{
  int cnt = 0; //统计结果
  int sum = 0; //统计和
  long long sp_sum = 0; //算数平方和,用int型会溢出 
  for(int i = 1;i<=2019;i++){
  	int temp = i; //一定要再设置一个变量temp,不要直接对i做修改,否则i可能被重新置零
  	while(temp){
  		if(temp % 10 == 2 || temp % 10 == 0 || temp % 10 == 1 || temp % 10 == 9){
			sp_sum += i*i;
			break;
		}
		temp /= 10;
	  }
  }
  cout<<sp_sum;
  return 0;
}

例题2

一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?

思路1:手算 

#include <iostream> 
#include <cmath>
using namespace std;
int main(){
	cout<<pow(2,10)+1;
	return 0;
}

思路2:本次对折弯的个数=上次对折弯的个数+上上次对折弯的个数*2(一个弯对折变三个弯)+2(绳子两端边对折变两个弯)

#include <iostream> 
using namespace std;
int main(){
	int wan_pre_pre = 0;//上上次对折弯的个数 
	int wan_pre = 0;//存上一次对折弯的个数 
	int wan_now = 1;//第一次对折弯的个数 
	for(int i = 2;i <= 10;i++){//对折十次
	    wan_pre_pre = wan_pre;
		wan_pre =  wan_now;
		wan_now = wan_pre + wan_pre_pre*2 + 2;
	}
	cout<<wan_now+2;
	return 0;
}

例题3

#include<bits/stdc++.h>
using namespace std;
int main()
{
  int number_of_examinees;//考试人数
  // cout<<"请输入考试人数"; 
  cin>>number_of_examinees;
  int score[number_of_examinees];//用于存放每个考生的成绩
  double sum;
  // cout<<"输入每个考生的成绩";
  for(int i=0;i<number_of_examinees;i++){
    cin>>score[i];
  }
  sort(score,score+number_of_examinees);
  cout<<score[number_of_examinees-1]<<endl;;
  cout<<score[0]<<endl;
  for(int i = 0;i<number_of_examinees;i++){
    sum+=score[i];
  }
  printf("%.2f",round(sum/number_of_examinees*100)/100);
  return 0;
}

智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值