c语言编程1×2×3×……×n所得的数末尾有多少0

尾数为0主要抓住相乘数字中的末尾是5和0的数值,一个5就可以和一个2或4相乘得到一个末尾是0的数,所以只要计算有多少末尾是5或0的数字就好;当然25、125之类的数字又可以分为5×5、5×5×5,所以25要当两个5看待;代码如下
#include <stdio.h>
int main()
{
int n,i,j,sum=0;
printf("请输出一个数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
j=i;//while语句之前必须给表达式赋初值(注意)
while(j%5==0)
{
sum++;
j/=5;
}
if(i==n)
printf("该相乘数字末尾有%d个0",sum);
}
return 0;
}

原文地址:https://blog.51cto.com/14233078/2363602

时间: 2024-08-30 03:13:27

c语言编程1×2×3×……×n所得的数末尾有多少0的相关文章

linux 操作系统下c语言编程入门

2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux程序设计入门--网络编程 9)Linux下C开发工具介绍 1)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编

YL-236 LCD12864汉字显示C语言编程

sfr P0=0x80; sfr P1=0x90; sfr P2=0xa0; sfr P3=0xb0; sbit cs1=P2^0; sbit cs2=P2^1; sbit e=P2^2; sbit rw=P2^3;//可以直接接地 sbit di=P2^4; sbit rst=P2^5;//默认为1,可以直接接电源 extern unsigned char code abc[] ; ys(int ms) { int k,d; for(k=0;k<ms;k++) for(d=0;d<123;d

华为C语言编程规范

DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd.版权所有 侵权必究All rights reserved密级:confidentiality levelDKBA 2826-2011.52011-06-02 华为机密,未经许可不得扩散 Huawei Confidential 第2页,共61页Page 2 , Total61修订声明Revision

R语言编程艺术(2)R中的数据结构

本文对应<R语言编程艺术>第2章:向量:第3章:矩阵和数组:第4章:列表:第5章:数据框:第6章:因子和表 ========================================================================= R语言最基本的数据类型就是向量(vector),单个数值和矩阵都是向量的一种特例. 声明:R中不需要声明变量,但是注意函数式语言的特性,如果读写向量中的元素时,R事先不知道对象是向量的话,则函数没有执行的对象.如下代码是无法工作的: y[1]

编程题:求两数之和

#include<stdio.h>       /*包含输入输出头文件*/ main()                            /*定义主函数*/ {  int a,b,sum;                /*定义整数变量a.b.sum*/ a=123;                        /*给a赋值*/ b=456;                        /*给b赋值*/ sum=a+b;                  /*令sum=a+b*/ p

C语言-cout&lt;&lt;"123"&lt;&lt;"45"&lt;&lt;endl;

VC中头文件为:#include <iostream.h> 这个在c中没有.是C++引进的. cout<头文件#include中printf()类似. 只是不需要标明数据类型. endl就是end of line的意思.honly:为避免ElemType的类型变化的影响,用cout取代printf().注意结尾要加endl.比如ElemTypede的类型发生变化,相应的printf()中的输出格式控制符必须进行相应的改变,否则会发生错误,因此用cout输出.1.\n与endl区别在于:

C语言编程时常犯十八个错误

C语言的最大特点是:功能强.使用方便灵活.C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下"灵活的余地",但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,本人通过对C的学习,积累了一些C编程时常犯的错误,写给各位学员以供参考.1.书写标识符时,忽略了大小写字母的区别.main(){ int a=5; printf("%d",A);}编译程序把a和A认

Linux下C语言编程基础学习记录

VIM的基本使用  LINUX下C语言编程 用gcc命令编译运行C语言文件 预处理阶段:将*.c文件转化为*.i预处理过的C程序. 编译阶段:将*.i文件编译为汇编代码*.s文件. 汇编阶段:将*.s文件转化为*.o的二进制目标代码文件. 链接阶段:将*.o文件转化为可执行文件. 生成可执行文件:将*.o转换为可执行文件. 执行可执行C语言文件. gcc常用选项列表 -c      只编译不链接,生成目标文件“.o” -S      只编译不汇编,生成编码代码 -E      只进行预编译,不做

C语言编程入门——动态内存分配

内存管理,是指软件运行时对计算机内存资源的分配和使用的技术.其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源.内存管理是C语言编程中重要的组成部分,C语言中的内存需要手动分配,手动释放,一般遵循分配多少,释放多少,以免造成内存泄漏.内存管理是一项重要且复杂的事情,理解内存管理,对后面课程及项目的学习会有很大的作用. 之前创建变量,是系统自动分配的内存,放在栈内存中,销毁后被系统自动回收,手动分配的内存,放在堆内存中,需要手动释放.千万不要忘记销毁对象手动将内存释放并将指针