zoukankan      html  css  js  c++  java
  • 计算圆周率

    #include<iostream>
    #include<ctime>
    #include<algorithm>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    inline int rd(){
        int x=0,f=1;
        char ch=getchar();
        for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;
        for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
        return x*f;
    }
    int main(){
        srand(time(0));
        system("color 9F");
        unsigned long long cnt1=0,cnt2=0;
        unsigned long long n=rd();
        if(n==0){
            while(1){
                for(int i=1;i<=1000000;i++){
                    long double x=(long double)((long double)rand()/(long double)(RAND_MAX));
                    long double y=(long double)((long double)rand()/(long double)(RAND_MAX));
                    long double z=(long double)(sqrt((long double)(x*x+y*y)));
                    if(z<(long double)(1.0)) cnt1++;
                    else if(z>(long double)(1.0)) cnt2++;
                }
                long double ans=(((long double)(cnt1+0.0))/((long double)(cnt1+cnt2+0.0))*(long double)(4.0));
                printf("当前π的值为:%.10Lf",ans);puts("");
            }
        }
        else{
            for(int i=1;i<=n;i++){
                long double x=(long double)((long double)rand()/(long double)(RAND_MAX));
                long double y=(long double)((long double)rand()/(long double)(RAND_MAX));
                long double z=(long double)(sqrt((long double)(x*x+y*y)));
                if(z<(long double)(1.0)) cnt1++;
                else if(z>(long double)(1.0)) cnt2++;
            }
            long double ans=(((long double)(cnt1+0.0))/((long double)(cnt1+cnt2+0.0))*(long double)(4.0));
            printf("%.10Lf",ans);
        }
        return 0;
    }

     升级版:

    #include<iostream>
    #include<ctime>
    #include<algorithm>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    inline int rd(){
        int x=0,f=1;
        char ch=getchar();
        for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;
        for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
        return x*f;
    }
    int main(){
        srand(time(0));
        system("color 9F");
        unsigned long long cnt1=0,cnt2=0;
        unsigned long long n=rd();
        unsigned long long cnt3=0;
        long double s=0;
        if(n==-1){
            while(1){
                cnt3++;
                cnt1=0,cnt2=0;
                for(int i=1;i<=1000000;i++){
                    long double x=(long double)((long double)rand()/(long double)(RAND_MAX));
                    long double y=(long double)((long double)rand()/(long double)(RAND_MAX));
                    long double z=(long double)(sqrt((long double)(x*x+y*y)));
                    if(z<=(long double)(1.0)) cnt1++;
                    else if(z>(long double)(1.0)) cnt2++;
                }
                long double ans=(((long double)(cnt1+0.0))/((long double)(cnt1+cnt2+0.0))*(long double)(4.0));
                s+=ans;
                printf("\(^-^)/ 当前π的值为:%.10Lf",s/(long double)(cnt3+0.0));puts("");
            }
        }
        else if(n==0){
            while(1){
                for(int i=1;i<=1000000;i++){
                    long double x=(long double)((long double)rand()/(long double)(RAND_MAX));
                    long double y=(long double)((long double)rand()/(long double)(RAND_MAX));
                    long double z=(long double)(sqrt((long double)(x*x+y*y)));
                    if(z<=(long double)(1.0)) cnt1++;
                    else if(z>(long double)(1.0)) cnt2++;
                }
                cnt2-=22;
                long double ans=(((long double)(cnt1+0.0))/((long double)(cnt1+cnt2+0.0))*(long double)(4.0));
                printf("\(^-^)/ 当前π的值为:%.10Lf",ans);puts("");
            }
        }
        else{
            for(int i=1;i<=n;i++){
                long double x=(long double)((long double)rand()/(long double)(RAND_MAX));
                long double y=(long double)((long double)rand()/(long double)(RAND_MAX));
                long double z=(long double)(sqrt((long double)(x*x+y*y)));
                if(z<(long double)(1.0)) cnt1++;
                else if(z>(long double)(1.0)) cnt2++;
            }
            long double ans=(((long double)(cnt1+0.0))/((long double)(cnt1+cnt2+0.0))*(long double)(4.0));
            printf("%.10Lf",ans);
        }
        system("pause"); 
        return 0;
    }
  • 相关阅读:
    jmeter的基本使用过程
    selenide UI自动化进阶二 pageObject实现页面管理
    Page Object 设计模式介绍
    自动化测试元素查找利器firepath介绍
    selenide 自动化UI测试中Configuration全局配置项目
    selenide 自动化测试进阶一: 查找元素和相关操作
    Selenide 简单实现自动化测试
    python操作MySQL数据库
    一次验证手机号固话号 正则表达式
    算法入门刷题笔记 算法竞赛入门经典++第六章例题 6-6--6-9,6-12,6-14,6-15 树与二叉树
  • 原文地址:https://www.cnblogs.com/WWHHTT/p/10145314.html
Copyright © 2011-2022 走看看