IOS算法面试题(2)——任意阶乘的最后0的个数、超大数相加集总
来源:互联网 发布:全站仪数据采集的步骤 编辑:程序博客网 时间:2024/04/27 20:52
//// main.c// 求任意阶乘最后0的个数(正确思路)//// Created by qianfeng on 15/12/15.// Copyright (c) 2015年 cuixuerui. All rights reserved.//#include <stdio.h>#include <math.h>/* 求任意阶的最后零的个数 */int main(int argc, const char * argv[]) { /* 思路:1、统计5的倍数num比如5,10,15,20,25.... 2、5,5*2,5*3,5*4,5*5...5*5,5*6,...,5*5*5,5*5*6,.... */ int n; int count=0; scanf("%d",&n); int k; for (int i=1; i<=n; i++) { //对i进行因式分解,有几个5阶乘后面就有几个0 k=i; if(k%5==0){ for (int j=1; j<=log(i)/log(5); j++) { if (k%5==0) { k=k/5; count++; } } } } printf("%d",count); return 0;}
//// main.c// 超大数相加//// Created by qianfeng on 15/12/12.// Copyright (c) 2015年 cuixuerui. All rights reserved.//#include <stdio.h>#include <stdlib.h>/* 在计算机领域中,经常需要做一些很大的数字处理,比如超过64位,比如128位处理。 但是计算机目前32位系统最多处理2^32这样的32位的数字,但是对于大型数字无法处理. 如: 3032832398719038781904783904783294873248783493194394132041834 + 323819473948324891247129084723412348713403284 = 3032832398719039105724257853108186120377868216606742845445118 请设计一个程序,可以处理超大长度(长度最大1024位,相信即使世界毁灭也不会有这么大的数字)的数字相加. */int main(int argc, const char * argv[]) { // insert code here... char ch1[1024]; char ch2[1024]; //1、将ch1,ch2初始化为0 for(int i=0;i<=1024;i++) { ch1[i]='0'; ch2[i]='0'; } int length1=0,length2=0; printf("请输入第一个数:\n"); //2、获取第一个数 while (length1<=1024) { scanf("%c",&ch1[length1]); if (ch1[length1]=='\n'||ch1[length1]==' ') { fpurge(stdin); break; } length1++; } //3、获取第二个数 printf("请输入第二个数:\n"); while (length2<=1024) { scanf("%c",&ch2[length2]); if (ch2[length2]=='\n'||ch2[length2]==' ') { fpurge(stdin); break; } length2++; } //4、将ch1、ch2倒叙转化为整型数据,存储到num1、num2中 int num1[1024]={0}; int num2[1024]={0}; int length=length1>length2?length1:length2; for (int i=0; i<length1; i++) { num1[i]=ch1[length1-i-1]-'0'; } for (int i=0; i<length2; i++) { num2[i]=ch2[length2-i-1]-'0'; } int sum[1025]={0};//初始化一个数组来盛放两数相加的和 int add=0; for (int i=0; i<=length; i++) { sum[i]=num1[i]+num2[i]+add; add=0; if (sum[i]>9) { add=1; sum[i]=sum[i]-10; } } int k; if (sum[length]==0) { length=length-1; } for(k=length;k>=0;k--) { printf("%d",sum[k]); } return 0;}
1 0
- IOS算法面试题(2)——任意阶乘的最后0的个数、超大数相加集总
- IOS面试算法题(1)——N阶乘最后总位数的问题
- java面试题之计算一个数的阶乘末尾0的个数
- 两个超大数的相加
- 算法---面试题/--求N的阶乘N!中末尾0的个数
- 超大数阶乘算法
- n阶乘求最后非0数字及最后面连续0的个数
- N的阶乘——多位数对单位数的乘法——数值超高超大的算法
- 【POJ】1401 - Factorial(阶乘最后0的个数)
- 两个超大数相加算法
- 面试题---求最后的数
- google面试题及我的算法(2)——0~n之间1的个数(完美版)
- google面试题及我的算法(2)——0~n之间1的个数(完美版)
- google面试题及我的算法(2)——0~n之间1的个数
- 求0至任意数之间所有数字中包含8的总个数
- 计算任意数阶乘n!末尾所含0的个数
- Java实现超大数字相加的算法
- 求任意数的阶乘
- ubuntu14.04系统安装tomcat
- 转载
- maven项目打包注意事项
- 最小公倍数
- 二分查找算法
- IOS算法面试题(2)——任意阶乘的最后0的个数、超大数相加集总
- 机器学习经典算法-决策树学习之ID3算法
- 数学之美番外篇:平凡而又神奇的贝叶斯方法
- maven下载jar包失败的原因 解决方法
- IO(过滤器流)
- 中断描述符表的初始化
- MXF crcf
- 你应当如何学习C++(以及编程)
- 客户端浏览器爬虫在爬取动态生成的img元素及动态设置src属性的问题