当前位置: 首页> 娱乐> 明星 > 建设银行手机app下载_企业网页制作平台_长沙互联网推广公司_北京seo技术

建设银行手机app下载_企业网页制作平台_长沙互联网推广公司_北京seo技术

时间:2025/7/18 16:59:07来源:https://blog.csdn.net/m0_73302939/article/details/145084531 浏览次数:0次
建设银行手机app下载_企业网页制作平台_长沙互联网推广公司_北京seo技术

目录

一、数位长度筛选问题

问题描述

测试样例

解题思路:

问题理解

数据结构选择

算法步骤

关键点

 

最终代码: 

运行结果: 

二、数值生成与运算问题 

问题描述

测试样例

解题思路: 

问题理解

数据结构选择

算法步骤

最终代码: 

运行结果:​编辑 


一、数位长度筛选问题

问题描述

在一个神秘的探险中,年轻的探险家小乐发现了一箱宝藏,箱子里装满了各式各样的神秘符文,每个符文都代表一个整数。他对这些符文的特性产生了极大的好奇,尤其是关于它们的长度。

小乐决定只关注那些符文位数为偶数的,想要统计出这样的符文有多少个。你的任务是帮助小乐计算出长度为偶数的符文数量,并给出最终的统计结果。


测试样例

样例1:

输入:nums = [12, 345, 2, 6, 7896]
输出:2

样例2:

输入:nums = [555, 901, 482, 1771]
输出:1

样例3:

输入:nums = [1, 22, 333, 4444]
输出:2

解题思路:

问题理解

你需要统计一个整数数组中,长度为偶数的整数的数量。这里的“长度”指的是整数的位数。

数据结构选择

  • 你已经有了一个整数数组 nums,这个数组中的每个元素都是一个整数。

算法步骤

  1. 遍历数组:你需要遍历数组中的每一个整数。
  2. 计算位数:对于每一个整数,你需要计算它的位数。
  3. 判断偶数位:判断这个整数的位数是否为偶数。
  4. 统计结果:如果位数是偶数,则增加计数器。
  5. 返回结果:最后返回计数器的值。

关键点

  • 如何计算一个整数的位数?
    • 可以通过将整数转换为字符串,然后计算字符串的长度。
    • 或者通过不断除以10,直到整数变为0,统计除法的次数。

 

最终代码: 

#include <iostream>
#include <vector>
using namespace std;int solution(std::vector<int> nums) {// PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE// write code hereint count = 0; // 用于统计符合条件的整数数量for (int num : nums) {// 计算当前整数的位数int digits = 0;int temp = num;while (temp != 0) {temp /= 10;digits++;}// 判断位数是否为偶数if (digits % 2 == 0) {count++;}}return count; // 返回统计结果
}int main() {cout << (solution({12, 345, 2, 6, 7896}) == 2) << endl;cout << (solution({555, 901, 482, 1771}) == 1) << endl;cout << (solution({1, 22, 333, 4444}) == 2) << endl;return 0;
}

运行结果: 

 

二、数值生成与运算问题 

问题描述

已知 n 和 start,计算 start xor (start + 2) xor (start + 4) ... xor (start + n + n - 2)


测试样例

样例1:

输入:n = 12, start = 3
输出:24

样例2:

输入:n = 20, start = 16
输出:0

样例3:

输入:n = 18, start = 9
输出:2

样例4:

输入:n = 7, start = 1
输出:15

解题思路: 

 

问题理解

你需要计算一系列数的异或结果。具体来说,给定两个整数 n 和 start,你需要计算以下表达式的结果:
[ \text{result} = \text{start} \oplus (\text{start} + 2) \oplus (\text{start} + 4) \oplus \ldots \oplus (\text{start} + 2(n-1)) ]

数据结构选择

这个问题不需要复杂的数据结构,只需要一个变量来存储当前的异或结果。

算法步骤

  1. 初始化结果变量:将结果变量初始化为 start
  2. 循环计算异或:从 start + 2 开始,每次增加 2,直到 start + 2(n-1),将每个数与结果变量进行异或操作。
  3. 返回结果:循环结束后,结果变量中存储的就是最终的异或结果。

最终代码: 

#include <iostream>
using namespace std;int solution(int n, int start) {// PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE// write code here// 初始化结果变量为 startint result = start;// 循环从 start + 2 开始,每次增加 2,直到 start + 2(n-1)for (int i = 1; i < n; ++i) {// 计算当前值并进行异或操作result = result ^ (start + 2 * i);}// 返回最终的异或结果return result;
}int main() {cout << (solution(12, 3) == 24) << endl;cout << (solution(20, 16) == 0) << endl;cout << (solution(18, 9) == 2) << endl;cout << (solution(7, 1) == 15) << endl;return 0;
}

运行结果: 

 

 

关键字:建设银行手机app下载_企业网页制作平台_长沙互联网推广公司_北京seo技术

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: