(58)统计能整除数字的位数(59)重新排列数组

2024-03-17 20:04

本文主要是介绍(58)统计能整除数字的位数(59)重新排列数组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 每日一言
  • 2. 题目 (58)统计能整除数字的位数
  • 3. 解题思路
  • 4. 代码
  • 5. 题目 (59)重新排列数组
  • 6.解题思路
  • 7. 代码
  • 8. 结语


1. 每日一言

小舟从此逝,江海寄余生。 -苏轼-


2. 题目 (58)统计能整除数字的位数

题目链接:统计能整除数字的位数

给你一个整数 num ,返回 num 中能整除 num 的数位的数目。

如果满足 nums % val == 0 ,则认为整数 val 可以整除 nums 。

  • 示例 1:
    输入:num = 7
    输出:1
    解释:7 被自己整除,因此答案是 1 。

  • 示例 2:
    输入:num = 121
    输出:2
    解释:121 可以被 1 整除,但无法被 2 整除。由于 1 出现两次,所以返回 2 。

  • 示例 3:
    输入:num = 1248
    输出:4
    解释:1248 可以被它每一位上的数字整除,因此答案是 4 。

提示:
1 <= num <= 109
num 的数位中不含 0


3. 解题思路

  1. 声明一个变量tmp,用于存储原始的输入数值num。
  2. 声明一个变量sum,用于累计能整除num本身的数字个数。
  3. 使用while循环,条件为tmp的值不等于0。
  4. 在循环中,通过求余操作(tmp % 10)来获取num的最后一位数字,并将其与num本身进行取模操作(num % (tmp % 10))。
  5. 如果取模结果等于0,说明该数字可以整除num本身,将sum自增1。
  6. 将tmp除以10,舍去最后一位数字,以处理下一位数字。
  7. 循环执行以上步骤,直到将num的所有位数处理完毕。
  8. 返回sum作为函数的输出结果。

4. 代码

int countDigits(int num) {int tmp = num;//拷贝一份numint sum = 0;while(tmp) {//将tmp的每一位取下来,算一下能否整除numif(num%(tmp%10)==0) {++sum;}tmp/=10;}return sum;
}

5. 题目 (59)重新排列数组

题目链接:重新排列数组

给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,…,xn,y1,y2,…,yn] 的格式排列。

请你将数组按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排后的数组。

  • 示例 1:
    输入:nums = [2,5,1,3,4,7], n = 3
    输出:[2,3,5,4,1,7]
    解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,1,7]

  • 示例 2:
    输入:nums = [1,2,3,4,4,3,2,1], n = 4
    输出:[1,4,2,3,3,2,4,1]

  • 示例 3:
    输入:nums = [1,1,2,2], n = 2
    输出:[1,2,1,2]

提示:
1 <= n <= 500
nums.length == 2n
1 <= nums[i] <= 10^3

6.解题思路

  1. 使用malloc函数为洗牌结果数组arr分配内存空间,大小为2n。
  2. 声明两个指针p1和p2,分别指向数组nums的前半部分和后半部分。
  3. 声明两个计数器j和k,分别用于遍历指针p1和p2所指向的元素。
  4. 使用for循环遍历数组nums的所有元素。
  5. 对于奇数索引(i的值为偶数),将指针p1所指向的元素赋值给洗牌结果数组arr的当前位置,并将计数器j自增1。
  6. 对于偶数索引(i的值为奇数),将指针p2所指向的元素赋值给洗牌结果数组arr的当前位置,并将计数器k自增1。
  7. 循环执行以上步骤,直到遍历完所有元素。

7. 代码

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* shuffle(int* nums, int numsSize, int n, int* returnSize){int* arr = (int*)malloc(sizeof(int)*2*n);int *p1 = nums;int *p2 = nums+n;int j = 0,k=0;for(int i = 0;i<numsSize;i++) {if(0 == i%2){arr[i] = p1[j];j++;}else{arr[i] = p2[k]; k++;}}*returnSize = numsSize;return arr;
}

8. 结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


这篇关于(58)统计能整除数字的位数(59)重新排列数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/820004

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令