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

编程入门 行业动态 更新时间:2024-10-26 20:31:43

<a href=https://www.elefans.com/category/jswz/34/1769601.html style=给你一个整数 num ,返回 num 中能整除 num 的数位的数目"/>

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

给你一个整数 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 <= 10^9
num 的数位中不含 0

#include<stdio.h>int countDigits(int num);
int main()
{int num;scanf("%d",&num);printf("num=%d\n",num);printf("%d 次",countDigits(num));
}int countDigits(int num){int numCopy = num, count = 0,array[10] = {0};if(numCopy<10)if(numCopy%numCopy == 0)count++;if(numCopy>10){while (numCopy){array[numCopy%10]++;	if(num%(numCopy%10) == 0){count++;printf("array = %d %d\n",numCopy%10,num%(array[numCopy%10]));}elsecount = count;numCopy /= 10;}}return  count;
}
//另一种方式
int countDigits(int num) {int tmp;int nums[10]={};for(tmp = num;tmp!=0;tmp/=10)nums[tmp%10]++;tmp=0;for(int temp=0;temp<10;temp++)if(nums[temp]&&num%temp==0)//nums[temp]不等于 0 成立tmp+=nums[temp];return tmp;}

更多推荐

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

本文发布于:2023-12-03 06:55:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1652382.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:给你   整数   数位   中能   数目

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!