• hdu 2006 求奇数的乘积(c语言)


    hdu 2006 求奇数的乘积

    link

    题目描述

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 121649 Accepted Submission(s): 73907

    Problem Description
    给你n个整数,求他们中所有奇数的乘积。

    Input
    输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。

    Output
    输出每组数中的所有奇数的乘积,对于测试实例,输出一行。

    Sample Input
    3 1 2 3
    4 2 3 4 5

    Sample Output
    3
    15

    Author
    lcy

    问题解答

    #include <stdio.h>
    int main()
    {
        int n, number, multiplication;
        while( scanf( "%d", &n) != EOF )
        {
            multiplication = 1;
            for( int i=1; i<=n; i++)
            {
                scanf( "%d", &number );
                if( number%2 == 1 ) multiplication*=number;
            }
            printf( "%d
    ", multiplication );
        }
    }
    

    笔记

    1. 题目要求“包含多个测试实例”,说明要用while(scanf("%d",&n)!=EOF)循环进行嵌套。
    2. 题目要求“每行的第一个数为n,表示本组数据一共有n个”,提示很明显,n是一个要求用户输入的控制内层循环的变量,内部循环一次就要用户输入一个值并判断这个值是不是奇数(在这边我采用的是for循环,因为短)。
    3. 第10、11行,注意:不能合并为if(scanf("%d",&number)%2==1) multiplication*=number;否则判断无效,具体为什么不可以的原理我也没有弄清楚,可能涉及一些其他更深奥的东西,反正进行测试的时候就会出错。
    4. 第4、7行,赋值multiplication=1需注意在while循环内、for循环外,定义int multiplication则要放在while函数外(这一部分知识是关于函数局部变量和调用机制的,知识点挺杂,不详细介绍了;一般多码码代码,多出几次错,多调试几次,自己就get到那个点了)
  • 相关阅读:
    2016华中农业大学预赛 E 想法题
    2016华中农业大学预赛 B 数学
    render()
    钩子函数
    redirect_uri域名与后台配置不一致,错误码:10003
    群发次数
    表名
    intval()函数
    render()
    $this->autoRender = false
  • 原文地址:https://www.cnblogs.com/yuzilan/p/10626217.html
Copyright © 2020-2023  润新知