首页 > 其他分享 >数字分组求偶数和

数字分组求偶数和

时间:2024-10-26 18:52:35浏览次数:5  
标签:even count 数字 组合 奇数 偶数 求偶 分组 odd

问题描述

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

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

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

#include <iostream>
#include <vector>
#include<string>
int solution(std::vector<int> numbers) {
    // Please write your code here
    long long evenCount = 0; // 记录偶数选择的组合数  
    long long oddCount = 0;  // 记录奇数选择的组合数  

    // 初始情况下,没有任何选择,所以组合数为0
    evenCount = 1; // 初始化为1,因为至少有一种选择(即不选择任何数字)

    for (int num : numbers) {
        int even = 0, odd = 0;
        std::string strNum = std::to_string(num);

        // 统计当前数字组中的偶数和奇数  
        for (char ch : strNum) {
            if ((ch - '0') % 2 == 0) {
                even++;
            }
            else {
                odd++;
            }
        }

        // 更新组合数  
        long long newEvenCount = evenCount * even + oddCount * odd; // 偶数和偶数的组合 + 奇数和奇数的组合
        long long newOddCount = evenCount * odd + oddCount * even; // 偶数和奇数的组合

        evenCount = newEvenCount;
        oddCount = newOddCount;
    }

    // 返回符合条件的组合数(偶数和的组合)  
    return evenCount; // 返回偶数和的组合数
    //return -1;
}

int main() {
    // You can add more test cases here
    std::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和Java,难怪上面 显示我一题也没刷,要细心,学习别拖延,截至日期快到了——

def solution(numbers):
    even_count = 0  # 记录偶数选择的组合数  
    odd_count = 0   # 记录奇数选择的组合数  

    # 初始情况下,没有任何选择,所以组合数为0
    even_count = 1  # 初始化为1,因为至少有一种选择(即不选择任何数字)

    for num in numbers:
        even = 0
        odd = 0
        str_num = str(num)

        # 统计当前数字组中的偶数和奇数  
        for ch in str_num:
            if int(ch) % 2 == 0:
                even += 1
            else:
                odd += 1

        # 更新组合数  
        new_even_count = even_count * even + odd_count * odd  # 偶数和偶数的组合 + 奇数和奇数的组合
        new_odd_count = even_count * odd + odd_count * even    # 偶数和奇数的组合

        even_count = new_even_count
        odd_count = new_odd_count

    # 返回符合条件的组合数(偶数和的组合)  
    return even_count  # 返回偶数和的组合数

# 测试用例
if __name__ == "__main__":
    print(solution([123, 456, 789]) == 14)  # 应输出 True
    print(solution([123456789]) == 4)       # 应输出 True
    print(solution([14329, 7568]) == 10)    # 应输出 True
记录提交上的第一题

标签:even,count,数字,组合,奇数,偶数,求偶,分组,odd
From: https://blog.csdn.net/2301_79218588/article/details/143217422

相关文章

  • 基于数字图像处理人脸识别matlab程序代码
                             数字图像处理人脸识别程序代码                                            程序代码:clear;I=imread('E:\02089008.jpg');  %%插入图像地址O=rgb2ntsc(I);G=O(:,:,2......
  • 基于神经网络应用于手写数字识别-matlab
    运用matlab编程进行神经网络进行手写数字识别。实验过程:一、BP神经网络神经网络是由很多神经元组成,可以分为输入,输出,隐含层。BP神经网络的特点:信号前向传递,信号反向传播。若输出存在误差,根据误差调整权值和阈值,使网络的输出接近预期。在用BP神经网络进行预测之前要训练网......
  • 基于数字图像matlab-运动物体检测
                            目录一.课程设计任务二.课程设计原理及设计方案1三.课程设计的步骤和结果四.设计体会4五.参考文献5             一 课程设计任务    在视频监控领域,需要对监控画面进行存储。长时间......
  • 【8086汇编】用栈来分解并显示数字
    1.源代码数字范围:0~255xorax,axxorbx,bxxorcx,cxxordx,dxmoval,163movbh,10s1:divbhaddah,0x30movdl,almoval,7xchgah,alpushaxmoval,dlxorah,ahinccxcmpal,0jnes1movax,0xb800......
  • Linux 中awk语句匹配首个数字与匹配首个连续的数字的区别
     001、[root@localhosttest]#catb.txt##测试数据000120081223efs333kjfdjEREADFASDLKJCV000220081208djfks2288daaJDKFJALSDJFsddf000320081208efskjfdjEREADFASDLKJCV000420081211djfksdaa1234JDKFJALSDJFs......
  • 肩负使命点亮梦想共绘数字经济新篇章
     在数字经济蓬勃发展、共同富裕成为时代强音的当下,一个圈圈作为行业的领军者,始终秉持着推动行业发展和帮助用户实现梦想的初心。我们欣喜地宣布,通过深度融合Web3.0理念,这个app已成功孕育并点亮了无数人的数字经济梦想,为行业的繁荣作出了卓越贡献。 作为数字经济的重要参与......
  • 猜数字(0~100)小游戏
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>voidmenu(){ printf("猜数字小游戏\n"); printf("输入1开始游戏\n"); printf("输入0退出游戏\n");}voidgame(){ intrandom=rand()......
  • 「社会保障体系的数字化转型:机遇与挑战」
    内容概要在当前的数字化转型背景下,社会保障体系正迎来极具潜力的改变。智能技术的引入使得服务模式和资源配置变得更加高效。通过运用人工智能、区块链等先进技术,社会保障系统能够实现实时数据处理和智能分析,从而为用户提供更为个性化的服务体验。这一过程不仅提升了服务效率,......
  • 代码随想录算法训练营第七天|LeetCode 344.反转字符串、LeetCode 541.反转字符串Ⅱ、
    LeetCode 344.反转字符串题目链接:LeetCode344.反转字符串文章链接:代码随想录题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。示......
  • 【powershell脚本】Powershell 数字取证和事件响应 (DFIR) 脚本
    原创Ots安全该存储库包含多个PowerShell脚本,可以帮助您应对Windows设备上的网络攻击。包括以下事件响应脚本:DFIR脚本:收集DFIR脚本部分列出的所有项目。CollectWindowsEvents:收集所有Windows事件并将其输出为CSV。CollectWindowsSecurityEvents:收集所有Windows......