
算法
茗樱.Stella
茗染云华 荆挑赋樱
展开
-
【算法】(持续更ing)
1-1 圆柱体的表面积 输入底面半径r和高h,输出圆柱体的表面积,保留3位小数,格式见样例。 样例输入: 3.5 9 样例输出: Area = 274.889 【分析】 圆柱体的表面积由3部分组成:上底面积、下底面积和侧面积。 由于上下底面积相等, 完整的公式可以写成:表面积=底面积×2+侧面积。 根据几何知识,底面积=πr^2,侧面积 =2πrh。不难写出完整程序: #in...原创 2018-09-10 18:50:02 · 539 阅读 · 0 评论 -
【算法】整数a+b的和 不用加法+运算符
主要利用异或运算来完成 异或运算有一个别名叫做:不进位加法 那么a ^ b就是a和b相加之后,该进位的地方不进位的结果 然后下面考虑哪些地方要进位,自然是a和b里都是1的地方 a & b就是a和b里都是1的那些位置,a & b << 1 就是进位 之后的结果。所以:a + b = (a ^ b) + (a & b << 1) 令a' = a ^ b,...原创 2018-11-21 22:26:57 · 665 阅读 · 0 评论 -
【算法】计算出n阶乘中尾部零的个数
思路: 观察1-20阶乘的结果,观察尾数为0的分布情况 发现有一个5就会出现一个0 其中5!(有一个5),10!(有两个5) 5!=120(一个0) 10!=3628800(两个0) #include <stdio.h> long trailingZeros(long n) { long count=0; long temp=n/5; while (temp!=0) ...原创 2018-12-09 15:52:38 · 371 阅读 · 0 评论 -
【算法】计算数字k在0到n中的出现的次数,k可能是0~9的一个值
思路: 遍历每一个数,同时每一个数都遍历每一位,遍历每一位的方法是不断地整除10,直到整除为0。 #include <stdio.h> int digitCounts(int k, int n) { int sum=0; for(int i=0;i<=n;i++) { int num=i; while(num/10!=0) { if(num%10...原创 2018-12-09 16:23:32 · 1433 阅读 · 0 评论