精华内容
下载资源
问答
  • 要求说明:3!= 3*2*1,5!=5*4*3*2*1,依次类推 n!...//用while语句求阶乘n!#include <stdio.h>int main(int argc, char **argv){ int n ; int i = 1; printf("Input n:\n"); scan...

    要求说明:3!= 3*2*1,5!=5*4*3*2*1,依次类推 n!= n*(n-1)*(n-2)*...*2*1,使用while语句求n!

    //用while语句求阶乘n!
    #include <stdio.h>


    int main(int argc, char **argv)
    {
        int n ;
        int i = 1;
        printf("Input n:\n");
        scanf("%d",&n);                         //输入n值
        float   fac = 1;                        //定义乘积初值为1
        if(n == 0 || n == 1)                    //判断n初值为0或1,阶乘值均为1
            printf("factorial is 1\n");
        else            
            while(i <= n)                       //循环体实现累乘
            {
                fac *= i++;
            }
        printf("factorial is %.2f\n",fac);      // 输出阶乘结果
        return 0;

    }

    样例输入输出:

    Input n:
    8
    factorial is 40320.00

    展开全文
  • 一、for循环语句在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。例如:根据通讯录中的姓名列表创建系统账号等情况。当面对各种列表重复工作任务时,使用...

    一、for循环语句

    在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。例如:根据通讯录中的姓名列表创建系统账号等情况。

    当面对各种列表重复工作任务时,使用if语句已经不能满足需要了,就需要使用到for语句。

    1.for语句结构

    使用for循环语句时,需要指定一个变量及可能的取值列表,针对不同的取值重复执行相同的命令序列,知道变量值用完退出循环。

    1)for循环语句的语法结构:

    for 变量名 in 取值列表

    do

    命令序列

    done

    语句结构中,for语句的操作对象为用户吧指定名称的变量,并通过in关键字为该变量预先设置了一个取值列表,多个取值之间用空格进行分隔。位于do……done之间的命令序列称为循环体,其中的执行语句需要应用变量以完成相应的任务。

    2)for循环语句流程图

    f69cea084a3d2ca76d901d61c6e816b1.png

    3)for循环语句的使用场景

    1. 循环次数未知;

    2.完整遍历整个取值列表。

    2.for语句应用示例

    要求:

    1.根据姓名列表批量创建用户;

    2.用户的初始密码是“123456”

    实施步骤:

    [root@localhost ~]# vim /root/users.txt //新建一个取值列表xiaozhangxiaolixiaowangxiaosun[root@localhost ~]# vim useraddfor.sh //创建批量创建用户的脚本#!/bin/bashULIST=$(cat /root/users.txt)for UNAME in $ULISTdouseradd $UNAMEecho "123456" | passwd --stdin $UNAME &> /dev/nulldone[root@localhost ~]# sh useraddfor.sh //执行脚本[root@localhost ~]# tail -4 /etc/passwd //验证效果xiaozhang:x:1001:1001::/home/xiaozhang:/bin/bashxiaoli:x:1002:1002::/home/xiaoli:/bin/bashxiaowang:x:1003:1003::/home/xiaowang:/bin/bashxiaosun:x:1004:1004::/home/xiaosun:/bin/bash

    注意:if语句、for语句及其他各种shell脚本语句都是可以嵌套使用的。

    二、while循环语句

    for循环语句非常适用于列表对象无规律,且列表来源已固定的场合,而对于要求控制循环次数,操作对象按数字顺序编号、按特定条件执行重复操作等情况,则更适合使用——while循环语句。

    1.while语句的结构

    使用while循环语句是,可以根据特定的条件反复执行一个命令序列,知道该条件不再满足为止。在脚本应用中,应该尽量避免出现死循环的情况,否则后边的命令操作将无法执行。因此,循环体内的命令序列中应包括修改测试条件的语句,以便在适当的时候使测试条件不再成立,从而结束循环。

    1)while循环语句的语法结构

    while 条件测试操作

    do

    命令序列

    done

    2)while循环语句流程图

    75e0dec01a273ece63969af2cef679a4.png

    使用while循环语句时,有两个特殊的条件测试操作。即true(真)和false(假)。使用true作为条件时,表示条件永远成立,循环体内的命令序列将无限执行下去,除非强制终止脚本(或使用exit语句退出脚本);反之若使用false作为条件,则循环体将不会执行。

    3)while循环语句的使用场景

    1.循环次数已知;

    2.必须有一个可以控制循环变量的语句。

    2.while语句应用示例

    要求:

    批量创建有规律编号的用户

    实施步骤:

    [root@localhost ~]# vim useraddwhile.sh#!/bin/bashPREFIX="stu"i=1while[ $i -le 10 ]douseradd ${PREFIX}$iecho "123456" | passwd --stdin ${PREFIX}$i &> /dev/nulllet i++done[root@localhost ~]# sh useraddwhile.sh[root@localhost ~]# tail /etc/passwdstu1:x:1005:1005::/home/stu1:/bin/bashstu2:x:1006:1006::/home/stu2:/bin/bashstu3:x:1007:1007::/home/stu3:/bin/bashstu4:x:1008:1008::/home/stu4:/bin/bashstu5:x:1009:1009::/home/stu5:/bin/bashstu6:x:1010:1010::/home/stu6:/bin/bashstu7:x:1011:1011::/home/stu7:/bin/bashstu8:x:1012:1012::/home/stu8:/bin/bashstu9:x:1013:1013::/home/stu9:/bin/bashstu10:x:1014:1014::/home/stu10:/bin/bash

    循环体内部,通过语句“let i++”(等同于i=expr $i + 1)来是变量i的值增加1,一直循环,直到满足条件为止。

    三、case分支语句

    1.case语句的结构

    1)case语句的语法结构

    case 变量值 in

    模式1)

    命令序列1

    ;;

    模式2)

    命令序列2

    ;;

    ……

    * )

    默认命令序列

    esac

    2)case语句流程图

    783ae53981b3f39ae2c5f12a0a185103.png

    使用case分支语句是,几个值得注意的特点:

    Shell脚本应用(三)

    3)case语句的使用场景

    某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列,这种情况与多分支的if语句非常相似,只不过if语句需要判断多个不同的条件,而case语句只是判断一个变量的不同取值。

    2.case语句应用实例

    [root@localhost ~]# vim hitkey.sh#!/bin/bashread -p "请输入一个字符,并按Enter键确认:" KEYcase "$KEY" in[a-z]|[A-Z])echo "你输入的是字母 $KEY";;[0-9])echo "你输入的是数字 $KEY";;*)echo "你输入的是非法字符 $KEY"esac[root@localhost ~]# sh hitkey.sh请输入一个字符,并按Enter键确认:1你输入的是数字 1[root@localhost ~]# sh hitkey.sh请输入一个字符,并按Enter键确认:w你输入的是字母 w[root@localhost ~]# sh hitkey.sh请输入一个字符,并按Enter键确认:@你输入的是非法字符 @
    展开全文
  • 循环:for循环,while循环,do..while()循环1,for循环:格式:for(初始化语句;判断条件语句;控制条件语句){循环体;}执行流程:1:执行初始化语句2:执行判断条件语句,看返回值是true还是false,如果返回值是true,...

    循环:for循环,while循环,do..while()循环

    e2c1a7c1263440e3c251cc48b83b5630.png

    1,for循环:


    格式:

    for(初始化语句;判断条件语句;控制条件语句){

    循环体;

    }

    执行流程:

    1:执行初始化语句

    2:执行判断条件语句,看返回值是true还是false,

    如果返回值是true,就继续执行

    如果返回之是false,就结束循环

    3:执行循环体语句

    4:执行控制条件语句

    5:回到第二步,继续执行

    class ForDemo{public static void main(String[] args){//需求:输出100次HelloWorldfor(int i = 0;i<100;i++){System.out.println("HelloWorld"+i);}}}

    需求:求1-10的和

    class ForDemo2{public static void main(String[] args){System.out.println(1+2+3+4+5+6+7+8+9+10);System.out.println("-----------------------");int sum = 0;//和for(int i = 1;i<=10;i++){sum = sum+i;}}}

    需求:求1-100的和

    求1-100之间的偶数和

    求1-100之间的奇数和

    class FroDemo3{public static void main(String[] args){int sum = 0;for(int i = 1;i<=100;i++){sum = sum+i;}System.out.println(sum);System.out.println("----------------");int sum2 = 0;for(int i =1;i<=100;i++){//判断是否是偶数if(i%2==0){sum2+=i;}}System.out.println(sum2);System.out.println("----------------");int sum3  =0;for(int i = 1;i<=100;i++){if(i%2==1){sum3+=i;}}System.out.println(sum3);}}

    //求5的阶乘

    class ForDemo4{public static void main(String[] args){System.out.println(1*2*3*4*5);System.out.println("---------------");int jc = 1;for(int i = 1;i<=5;i++){jc= jc*i;}System.out.println(jc);}}

    在控制台输出100-1000之间的所有的水仙花数

    水仙花数:

    个位的3次幂+十位的三次幂+百位的三次幂 = 本身

    例如:153:就是一个水仙花数

    1*1*1+5*5*5+3*3*3

    =1+125+27

    =153

    问题:如何得到个位,十位,百位呢?

    假设水仙花数:153

    ge = 153%10

    shi = 153/10%10

    bai = 153/100

    class ForDemo5{public static void main(String[] args){for(int i = 100;i<1000;i++){int ge = i%10;int shi = i/10%10;int bai = i/100;if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai){System.out.println(i);}}

    在控制台输出满足以下要求的5位数

    个位 = 万位

    十位 = 千位

    个位+十位+千位+万位 = 百位

    class ForDemo6{public static void main(String[] args){for(int i = 10000;i<100000;i++){int ge = i%10;int shi = i/10%10;int bai = i/100%10;int qian = i/1000%10;int wan = i/10000%10;if((ge==wan)&&(shi==qian)&&(ge+shi+qian+wan==bai)){System.out.println(i);}}}}

    请统计1-1000之间同时满足以下条件的数据有多少个?

    对3整除余2

    对5整除余3

    对7整除余2

    class ForDemo7{public static void main(String[] args){for(int i=1;i<=1000;i++){if(i%3==2)&&(i%5==3)&&(i%7==2){System.out.println(i);}}}}
    展开全文
  • 1、for、if、whlie等循环语句中遇到continue关键字,中断当前循环,跳出所有语句,重新开始循环。2、break终止当前循环,不再循环3、求阶乘的和: a=1s=0 n=int(input('A number:')) for i in range(1,n+1): a*=i ...

    1、for、if、whlie等循环语句中遇到continue关键字,中断当前循环,跳出所有语句,重新开始循环。

    2、break终止当前循环,不再循环

    3、求阶乘的和:

     a=1

    s=0
    n=int(input('A number:'))
    for i in range(1,n+1):
        a*=i
        s+=a
    print(s)   #求阶乘之和
    
    
    4、 求某个数是否为质数
    
    a=int(input('Please enter one number:'))
    if a==1:
        print('质数')
    else:
        for i in range(2,a):
            if a%i==0:
                print('不是质数')
                break
        else:
            print('是质数')
    
    5、九九乘法表
    
    
    for i in range(1,10):
        for j in range(1,i+1):
            print(str(i)+'*'+str(j)+'='+str(i*j),end='  ')
        print(' ')     #九九乘法表
    
    6、100以内的斐波那契数列
    a,b=0,1
    L=[]
    while a < 100:
        print(a,end=' ')
        L.append(a)
        a,b=b,a+b
    print('\n',L)
    print(len(L))      #100以内的斐波那契数列
    
    7、斐波那契数列第101项
    a,b=0,1
    L=[]
    while a>=0:
        print(a)
        L.append(a)
        a,b=b,a+b
        if len(L)==101:
            print(len(L))
            print(L[-1])
            break '''      #斐波那契数列第101项
    展开全文
  • 阶乘指的是不断的与被递减的它本身相乘,每次递减1到1为止,比如3的阶乘用数学表达式是 3! ,此时它的结果等于 6.那么如何用代码实现呢?我们可以用递归的办法,也可以用循环的办法。这里是用的循环的办法。首先,...
  • 作者 | 李明江 张良均 周东平 张尚佳,本文摘编自...除了两个循环语句外,还介绍了break、continue与pass三个用于控制循环结构中的程序流向的语句。在此基础之上,还介绍了列表推导式,这是一种特殊的循环语句。...
  • for循环语句格式: for (int i = 1;/*初始条件*/i <= 100;/*循环条件*/i++/*状态改变*/) { //循环体,执行代码;(break;跳出循环体) } for 穷举法用循环把各种可能的情况都走一遍,然后用if条件把...
  • python计算数的阶乘的三种方法:1、使用“for i in range()”循环语句求阶乘;2、使用“reduce()”函数求阶乘;3、通过递归求阶乘。方法一:普通的for循环语句:a = 1n = 5for i in range(1,n+1):a = a * iprint(a)...
  • //语法(循环条件为 true, 则执行循环语句; 否则结束循环) while(循环条件){ 循环语句; } 打印1-10的数字; 计算1-100的和; 计算5的阶乘; 计算 1! + 2! + 3! + 4! + 5!的结果; public static void main(String...
  • 1.if语句(1)if条件语句语法:单分支结构if [ 条件 ]then指令fi或if [ 条件 ];then指令fiif 单分支条件中文编程形象语法:如果 [ 你有房 ]那么我就嫁给你果如前面的文件条件表达式[ -f "$file1" ]&& echo 1 ...
  • 1.用for语句计算 2.用do-while语句 3.用while语句 4.用递归算法public classjiecheng{public static void main(String args[]){Scanner input = new Scanner(System.in); //构建一个输入实例int n = input.nextInt()...
  • for命令格式:– list参数:迭代中要用的一系列值– 每个迭代中,变量var会包含列表中的当前值– do和done语句之间输入的命令可以是一条或多条标准的bash shell命令1234forvarinlistdocommandsdone读取列表中的值for...
  • 009 求阶乘

    2020-02-25 22:43:27
    求阶乘: n!=n×(n-1)×(n-2)×...×2×1 (n≥2)→ while循环体:fac=fac*i n!=1(n=0或n=1) → if条件判断语句 例:编写代码实现求10!。 #include <stdio.h> int main() { int i=2,n=10; float fac=1; if...
  • 你不让他循环能对吗----------------解决方案------------------------------------------------------------------------解决方案--------------------------------------------------------以下是引用黑白格子布在...
  • Java编程那些事儿36—do-while语句语法郑州游戏学院 陈跃峰5.4.2 do-while语句do-while语句由关键字do和while组成,是循环语句中最典型的“先循环再判断”的流程控制结构,这个和其它2个循环语句都不相同。...
  • C/C++求阶乘

    2020-04-12 19:35:46
    求阶乘 /求 n!(n≤12),也就是 1×2×3…×n 挑战:尝试不使用循环语句(for、while)完成这个任务。/ 方法一 for循环 #include<bits/stdc++.h> using namespace std; int main() { int n, sum=1; cin>&...
  • 递归思想求阶乘问题

    2020-09-24 11:38:24
    java递归 A.递归思想: 1.递归的基本思想就是“自己调用自己”,或直接或间接,我们也可以...//递归思想求阶乘问题 package jh_08_diGui; public class jh_10_diGui { public static void main(String[] args) { int f
  • Problem D: 递归求阶乘

    2020-12-16 18:32:58
    Problem D: 递归求阶乘 Description 我们都知道,在数学上,一个整数n的阶乘被定义为:n! = (n - 1)! * n,且0! = 1。 现在,你需要编写一个程序计算一个整数n的阶乘。不过,这次你只能使用递归的方法来实现。 ...
  • Problem C: 递归求阶乘

    2020-12-16 16:21:35
    Problem C: 递归求阶乘 Description 我们都知道,在数学上,一个整数n的阶乘被定义为:n! = (n - 1)! * n,且0! = 1。 现在,你需要编写一个程序计算一个整数n的阶乘。不过,这次你只能使用递归的方法来实现。 ...
  • python计算数的阶乘的三种方法:1、使用“for i in range()”循环语句求阶乘;2、使用“reduce()”函数求阶乘;3、通过递归求阶乘。方法一:普通的for循环语句:a=1n=5foriinrange(1,n+1):a=a*iprint(a)得到结果:...
  • for循环是我们在编写Linux脚本时常用的控制语句,很多初学者在接触for循环的时候经常迷糊,因为for循环的形式真的有点多!我在学习的时候也比较犯难,以致于后来应用for循环的时候经常还要打开百度查上一查。最近...
  • C# 循环语句

    2016-07-23 16:59:00
    本次主要学习了for循环语句。 for循环语句的基本格式是: for(初始条件;循环条件;状态改变) { 循环体; } break——中断循环,... 例:输入一个正整数,求阶乘的和。 Console.WriteLine("请输入一...
  • 循环语句for

    2019-12-12 11:41:54
    循环语句for range():内置python函数 range(start,stop):start~stop-1 range(stop):0~stop-1 range(start,stop,step):start~stop step:为步长 1~100之和 1~100的奇数的和 1~100的偶数的和 利用for...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 273
精华内容 109
关键字:

循环语句求阶乘