2024-04-11 100 发布于黑龙江
版权
举报
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本专栏文章都直奔刷题主题,阿辉都不会在废话了,加油,少年!!!
再讲下面两道题前,阿辉先给各位讲一下,对于除和取模阿辉的心得
除(整数除法):
首先提一下进制,各种进制其实只是对于数字的不同表示,对于一个数的十进制、二进制还是八进制都只是这个数的不同表示
那么关于除,比如:10/ 8 = 1其实可以理解为对于10的8进制形式的右移一位 10的8进制是12右移一位刚好是1 怎么理解呢?各种进制是怎么来的,比如8进制,满8就进1
我给你一个8进制数比如127,这玩意转成十进制怎么转?
是不是:1 × 82 + 2 × 81 + 7 × 80
上面那玩意除8,最低位永远不会到8,整数除法除8不到8直接滚(舍去)
剩下的权重都掉一级 结果就是12,不就是右移一位嘛
SO除以一个数就是对该数字进制下的右移一位的结果
取模:
有上面的认识,取模就好理解多了,还是8进制数127
1 × 82 + 2 × 81 + 7 × 80这玩意模8得到的就是7,因为取模得到的就是一个数不满8部分,比如10进制的最低位就不满10,16进制的最低位就不满16
SO模上一个数相当于拿到该数进制下的最低位
描述:
在控制台输出所有的“水仙花数”。 水仙花数是指一个三位数,其各位数字的立方和等于该数本身。 举例:153就是一个水仙花数。 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
AI 代码解读
题不是很难,相信铁子们很容易就想到把个位 十位 百位 上的数字拿到,然后再求立方和判断这个思路吧!阿辉,也是这么想的。
怎么拿到各个位上上的数字很简单:
一个数字模10就可以得到它的十位上的数字,一个数字除以十它十位上的数字就来到了各位然后继续模10得到十位上的数字,百位千位等以此类推
代码很好写:
#include<stdio.h> int main() { //遍历所有三位数 for(int i = 100; i <= 999; i++){ int a = i % 10; //十位上的数字 int b = (i / 10) % 10;//百位上的数字 int c = (i / 100) % 10;//千位上的数字 if(i == a * a * a + b * b * b + c * c * c)//判断 printf("%d",i); } return 0; }
AI 代码解读
不过阿辉在看题解的时候总能看到骚操作
水仙花数嘛,不就是个三位数,百位上的数字是1~ 9,个位十位上的数字是0 ~ 9嘛,三个for循环不会可以表示所有的三位数嘛,然后这么写:
#include<stdio.h> int main(){ for (int i = 1; i < 10; i++) { //i表示百位 for (int j = 0; j < 10; j++) { //j表示十位 for (int k = 0; k < 10; k++) { //k表示个位 if ((i*i*i + j*j*j + k*k*k) == (i*100 + j*10 + k)) printf("%dn", i * 100 + j * 10 + k); } } } }
AI 代码解读
题解真是好东西
描述:
变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字, 如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分 后的乘积之和等于自身,则是一个Lily Number 例如: 655 = 6 * 55 + 65 * 5 1461 = 1*461 + 14*61 + 146*1 求出 5位数中的所有 Lily Number。
AI 代码解读
变种水仙花,主要就是看你对于取模以及除法的理解
把数成功的分成两部分,这道题就做完了
代码如下:
#include<stdio.h> #include<math.h> int main(){ for(int i = 10000;i < 100000;i++){ int sum = 0;//sum记录所有分成两部分乘积的和 //因为是5位数所以只有 1 4 2 3 3 2 4 1 这四种分法 for(int j = 4; j > 0; j--){//循环累加 sum += (i / (int)pow(10,j)) * (i % (int)pow(10,j)); } if(sum == i) printf("%d ",i); } return 0 ; }
AI 代码解读
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关知识
水仙花数解
【手把手带你刷LeetCode】——19.水仙花数(作业)
Python(水仙花数)
通过Java实现求水仙花数
java 水仙花数(循环)
每日经典算法题(三) 求水仙花数
C语言实现水仙花数
计算出水仙花数
Java实现水仙花数
C语言:输出所有的水仙花数
网址: 【刷题日志】深度理解除(/)与取模(%)附水仙花数以及变种水仙花数题解 https://m.huajiangbk.com/newsview1786873.html
上一篇: 浏览器上享受《速度与激情》,开发 |
下一篇: 花最少的时间驱动湿温度传感器之R |