ZCMU——1079: 求1-1/3+1/5-1/7+...——数学题目中的找规律题目的做法——自加的写法还有i++与++i的区别

目录


题干

题目描述

输入一个正整数 repeat (0

输入

见sample

输出

见sample

样例输入

1
1E-4

样例输出

0.785348


源代码

#include<stdio.h>
int main()
{
    int repeat;
    scanf("%d",&repeat);
    while(repeat--)
    {
        double eps;       //定义一个双精度浮点型变量
        scanf("%lf",&eps);         //输入
        double now=1.0,ans=0;     //初始化
        int i=1,j=0;              //初始化too
        while(now>=eps)           //如果eps比now大,输出会有问题
        {
            if(j%2==0)           //这个if else是来判断分数前面的符号的奇数为正,偶数为负
                ans=ans+now;
            else
                ans=ans-now;
            i=i+2;       //这种运算方式叫自加
            j=j+1;
            now=1.0/i;    //因为i是整型变量,而1除任何一个整数都是零,所以在分子处用1.0,
                         //                1.0是浮点数,整个分数就也为浮点数
        }
        printf("%.6f\n",ans);    //保留六位小数并输出
    }
    return 0;
}
//ENDING

解题思路

终于有一道还算复杂的题了(虽然也还好)
自加有两种写法

i=i+2;

i+=2;

这两种是一样的
当然还有一种特殊的

i++;     //这是 i=i+1 的意思 

当然还有自减,自乘 等等
这里顺便提一下

i++;

++i;

的区别
它们的区别就在于是先调用变量 i ,还是先自加

#include<stdio.h>
int main()
{
    int i=0;
    printf("%d ",i++);
    printf("%d",++i);
}

这样输出 2 0 ,而

#include<stdio.h>
int main()
{
    int i=0;
    printf("%d ",++i);
    printf("%d",i++);
}

这样输出 1 1 。
不知道你明白了没有
希望你喜欢这道题目还有我的解题思路!!!
如有问题请留言,谢谢!!!

>>>我的博客<<<


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章