当前位置: 首页 > news >正文

广东建设业协会网站太原做网站价格

广东建设业协会网站,太原做网站价格,凡科官网免费制作小程序,郯城网站建设数字分组求偶数和 1.问题描述 问题描述 小M面对一组从 1 到 9 的数字,这些数字被分成多个小组,并从每个小组中选择一个数字组成一个新的数。目标是使得这个新数的各位数字之和为偶数。任务是计算出有多少种不同的分组和选择方法可以达到这一目标。 n…

数字分组求偶数和

1.问题描述

问题描述

小M面对一组从 1 到 9 的数字,这些数字被分成多个小组,并从每个小组中选择一个数字组成一个新的数。目标是使得这个新数的各位数字之和为偶数。任务是计算出有多少种不同的分组和选择方法可以达到这一目标。

  • numbers: 一个由多个整数字符串组成的列表,每个字符串可以视为一个数字组。小M需要从每个数字组中选择一个数字。

例如对于[123, 456, 789],14个符合条件的数为:147 149 158 167 169 248 257 259 268 347 349 358 367 369


测试样例

样例1:

输入:numbers = [123, 456, 789]
输出:14

样例2:

输入:numbers = [123456789]
输出:4

样例3:

输入:numbers = [14329, 7568]
输出:10

2.思路与题解

问题理解

你需要从每个数字组中选择一个数字,使得这些数字的和为偶数。问题的核心在于如何判断一个数的和是否为偶数。

数据结构选择

  • 输入是一个整数数组,每个整数可以转换为字符串来处理。
  • 你需要遍历每个数字组,并从每个组中选择一个数字。

算法步骤

  1. 转换输入:将整数数组转换为字符串数组,以便于处理每个数字组中的单个数字。
  2. 递归遍历:使用递归函数来遍历每个数字组,并从每个组中选择一个数字。
  3. 和的判断:在递归过程中,累加当前选择的数字,并在递归的终止条件处判断累加和是否为偶数。
  4. 计数:如果累加和为偶数,则计数加一。

2.4代码框架

Java

public class Main {public static int solution(int[] numbers) {// 将整数数组转换为字符串数组String[] numStrings = new String[numbers.length];for (int i = 0; i < numbers.length; i++) {numStrings[i] = String.valueOf(numbers[i]);}// 调用递归函数进行计算return countEvenSumCombinations(numStrings, 0, 0);}// 递归函数,用于计算符合条件的组合数private static int countEvenSumCombinations(String[] numStrings, int index, int currentSum) {// 如果已经遍历完所有数字组if (index == numStrings.length) {// 检查当前和是否为偶数if (currentSum % 2 == 0) {return 1;} else {return 0;}}int count = 0;// 遍历当前数字组中的每个数字for (char digit : numStrings[index].toCharArray()) {// 将字符转换为数字int num = digit - '0';// 递归调用,选择下一个数字组count += countEvenSumCombinations(numStrings, index + 1, currentSum + num);}return count;}public static void main(String[] args) {// 测试用例System.out.println(solution(new int[]{123, 456, 789}) == 14);System.out.println(solution(new int[]{123456789}) == 4);System.out.println(solution(new int[]{14329, 7568}) == 10);}
}

C++

#include <iostream>
#include <vector>
#include <string>int solution(std::vector<int> numbers) {int count = 0;// 遍历每个数字组for (int num : numbers) {std::string numStr = std::to_string(num);// 遍历数字组中的每个数字for (char digit : numStr) {// 计算和int sum = 0;// 计算各位数字之和// 判断和是否为偶数if (sum % 2 == 0) {count++;}}}return count;
}int main() {// You can add more test cases herestd::cout << (solution({123, 456, 789}) == 14) << std::endl;std::cout << (solution({123456789}) == 4) << std::endl;std::cout << (solution({14329, 7568}) == 10) << std::endl;return 0;
}

Python

def solution(numbers):def is_even_sum(digits):# 检查一组数字的和是否为偶数return sum(digits) % 2 == 0def count_even_sum_combinations(index, current_digits):# 如果已经遍历完所有数字组if index == len(numbers):# 检查当前组合的和是否为偶数if is_even_sum(current_digits):return 1return 0count = 0# 遍历当前数字组中的每个数字for digit in str(numbers[index]):# 选择当前数字并递归处理下一个数字组count += count_even_sum_combinations(index + 1, current_digits + [int(digit)])return count# 从第一个数字组开始递归计算return count_even_sum_combinations(0, [])if __name__ == "__main__":# 你可以添加更多测试用例print(solution([123, 456, 789]) == 14)print(solution([123456789]) == 4)print(solution([14329, 7568]) == 10)

Golang

package mainimport "fmt"func solution(numbers []int) int {// 辅助函数,用于判断一个数是否为偶数isEven := func(num int) bool {return num%2 == 0}// 递归函数,用于遍历所有可能的选择var dfs func(index int, currentSum int) intdfs = func(index int, currentSum int) int {// 如果已经遍历完所有数字组if index == len(numbers) {// 检查当前和是否为偶数if isEven(currentSum) {return 1}return 0}count := 0// 将当前数字组转换为字符串numStr := fmt.Sprintf("%d", numbers[index])// 遍历当前数字组中的每个数字for i := 0; i < len(numStr); i++ {// 将字符转换为数字digit := int(numStr[i] - '0')// 递归处理下一个数字组count += dfs(index+1, currentSum+digit)}return count}// 从第一个数字组开始递归return dfs(0, 0)
}func main() {// 你可以添加更多测试用例fmt.Println(solution([]int{123, 456, 789}) == 14)fmt.Println(solution([]int{123456789}) == 4)fmt.Println(solution([]int{14329, 7568}) == 10)
}

2.5一些疑难的代码解释

  1. 递归函数的设计:确保递归函数能够正确地遍历每个数字组,并累加当前选择的数字。
  2. 和的判断:在递归的终止条件处,判断累加和是否为偶数。
  3. 计数:如果累加和为偶数,则计数加一。

3.欢迎大佬们关注或莅临本渣的一些个人website

gitee: https://gitee.com/xiao-chenago
github:https://github.com/cool-icu0
语雀:https://www.yuque.com/icu0
csdn:https://cool-icu.blog.csdn.net/

http://www.yayakq.cn/news/978188/

相关文章:

  • 网站注册平台托管公司是怎么托管的
  • 天津网站优化公司电话网站设计与网页制作团队
  • 韩国美容网站 模板免费个人网站模板
  • 安徽网站公司网站html电影网站模板下载
  • 淄博seo网站排名优化中企动力销售是做什么的
  • 长春门户网站建设wordpress标题间隔符修改
  • 做图片网站 侵权网站做动态图片不显示
  • 传统企业建设营销型网站网站流量数据分析
  • 农业技术推广网站源码打包成app
  • html做音乐网站模板网页设计与制作教程上什么学校
  • 腾讯云网站建设的步骤过程网络推广的平台有哪些
  • 自己的网站做弹出广告百度贴吧论坛
  • 网站建设与运营总结做图片视频的网站有哪些问题
  • 做班级网站的详细计划书没有公网ip做网站
  • 泸州市建设局网站上市公司做网站
  • 广东佛山建网站用excel做网站
  • 哪个网站可以做经济模拟题微网站设计与制作
  • IDC网站用什么软件建淮安汽车集团网站建设
  • 建设网站市场规模网站地域分站怎么做
  • 网站接入地查询建设网站中存在的问题
  • 做导购网站有哪些大学生网页设计报告
  • 对于新公司如何让其做网站推广挖掘爱站网
  • 罗岗网站建设自己做网站哪家好
  • 营销型网站建设的资讯app界面设计包括哪几部分
  • 网络营销模式分析北京优化推广
  • logo设计网站官网酷站
  • 内蒙建设厅网站网站优化的方法与技巧
  • 绵阳哪个网站做外卖做的好如何通过查询网站注册时间
  • 烟台网站建设方案策划如何在手机上自己制作软件
  • 用asp.net做的网站有哪些江苏省城乡建设官网站