1、首先定义一个函数,这个函数里的内容求n的阶乘,返回值是n的阶乘,如下图所示。
2、函数定义完成之后,就要开始写main函数里的内容,还是定义变量。
3、变量定义后就要赋值,把sum的值写为0.因为后面的求和就需要sum的初始值为0,如下图所示。
4、下一步就是利用for循环了,for循环i初始值位1,结束值为100。
5、最后一步就是把求出的sum打印出来,再加上return 0,如下图所示就完成了。
#include "stdio.h"int prime(int n){//判断素数
int i
if(n>2 && !(n&1) || n<2)
return 0
for(i=3i*i<=ni+=2)
if(!(n%i))
return 0
return 1
}
int main(int argc,char *argv[]){
int n,m
printf("Please enter n(int 0<n)...\nn=")
if(scanf("%d",&n)!=1 || n<1){
printf("Input error, exit...\n")
return 0
}
printf("Between 1 and %d a total of ",n)
for(m=0n>1m+=prime(n--))
printf("%d prime.\n",m)
return 0
}
运行样例:
算法分析:
1. 定义N 及用来统计的cnt, 用来循环的n;
2. 输入N ;
3. 将n从1到N循环, 对于每个n执行如下操作:
a) 循环取出n的每位数字值
b)判断该位是否为1, 如是则累加到cnt上。
4. 输出结果。
代码如下:
#include <stdio.h>int main()
{
int n, N, cnt = 0
scanf("%d",&N)//输入N值。
for(n = 1n<=N n ++)//循环执行
{
int t = n
while(t)//循环取出每一位。
{
if(t%10 == 1) cnt++
t/=10
}
}
printf("%d\n", cnt)//输出结果
return 0
}