zoukankan      html  css  js  c++  java
  • Xuan_Fly Loves Math

    posted on 2019-11-05 18:47:11
    标程如下:

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    ll a,b;
    double a1,b1,c1;
    double deal(double a,double b,char ch){
    	if(ch=='*') return a*b;
    	if(ch=='/') return a/b;
    	if(ch=='+') return a+b;
    	return a-b;
    }
    int main()
    {
    	int n;
    	//freopen("cal1.in","r",stdin);
    	//freopen("out.txt","w",stdout);
    	scanf("%d",&n);
    		char ch,ch1,ch2;
    		for(int i=1;i<=n;i++)	
    		{
    			ll ans;
    			scanf("%lld%c%lld",&a,&ch,&b);
    			if(ch=='+') ans=a+b;
    			else if(ch=='-') ans=a-b;
    			else if(ch=='*') ans=a*b;
    			else if(ch=='/') 
    			ans=a/b;	
    			
    			else if(ch=='%') ans=a%b;
    			else if(ch=='^') ans=pow(a,b);
    			if(ch=='*'||ch=='^') ans=(ans%1000000007+1000000007)%1000000007;
    			printf("%lld
    ",ans);
    		}
    		for(int i=1;i<=n;i++){
    			double ans;
    			scanf("%lf %c %lf %c %lf",&a1,&ch1,&b1,&ch2,&c1);
    			if((ch1=='+'||ch1=='-')&&(ch2=='*'||ch2=='/')) {
    				ans=deal(b1,c1,ch2);
    				ans=deal(a1,ans,ch1);
    			}
    			else {
    				ans=deal(a1,b1,ch1);
    				ans=deal(ans,c1,ch2);
    			}
    			if(fabs(ans)<0.005) ans=0;
    			if(ans)
    			printf("%.2lf
    ",ans);
    			else printf("0.00
    ");
    		}
    }
    

    来自:(mathcal{FYQ})

    另有本人的程序:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <iomanip>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    int n;
    int main()
    {
    //	freopen("cal10.in", "r", stdin);
    //	freopen("cal10.out", "w", stdout);
    	cin >> n;
    	for(int i = 1; i <= n; i++) {
    		long long a, b, e;
    		char d;
    		double c;
    		cin >> a >> d >> b;
    		if(d == '/') 
    			printf("%lld
    ", a / b);
    		if(d == '+')
    			printf("%lld
    ", a + b);
    		if(d == '-')
    			printf("%lld
    ", a - b);
    		if(d == '*') {
    			e = a * b;
    			e = (e % 1000000007 + 1000000007) % 1000000007;
    			printf("%lld
    ", e);
    		}
    		if(d == '%')
    			printf("%lld
    ", a % b);
    		if(d == '^') {
    			c = pow(a, b);
    			e = (long long)c;
    			e %= 1000000007;
    			printf("%lld
    ", e);
    		}
    	}
    	for(int i = 1; i <= n; i++) {
    		double a, b, c, ans;
    		char d, e;
    		cin >> a >> d >> b >> e >> c;
    		if(d=='+'&&e=='+')
    			ans = a + b + c;
    		else if(d=='+'&&e=='-')
    			ans = a + b - c;
    		else if(d=='+'&&e=='*')
    			ans = a + b * c;
    		else if(d=='+'&&e=='/')
    			ans = a + b / c;
    		else if(d=='-'&&e=='+')
    			ans = a - b + c;
    		else if(d=='-'&&e=='-')
    			ans = a - b - c;
    		else if(d=='-'&&e=='*')
    			ans = a - b * c;
    		else if(d=='-'&&e=='/')
    			ans = a - b / c;
    		else if(d=='*'&&e=='+')
    			ans = a * b + c;
    		else if(d=='*'&&e=='-')
    			ans = a * b - c;
    		else if(d=='*'&&e=='*')
    			ans = a * b * c;
    		else if(d=='*'&&e=='/')
    			ans = a * b / c;
    		else if(d=='/'&&e=='+')
    			ans = a / b + c;
    		else if(d=='/'&&e=='-')
    			ans = a / b - c;
    		else if(d=='/'&&e=='*')
    			ans = a / b * c;
    		else if(d=='/'&&e=='/')
    			ans = a / b / c;
    		if(ans >= -0.005 && ans < 0.00)
    			ans = -1 * ans;
    		if(ans == -0.00)
    			ans = 0.00;
    		printf("%.2f
    ", ans);
    	}
    	return 0;
    }
    

    请自主选择好理解的程序阅读

  • 相关阅读:
    apt局域网源搭建
    openstack 使用集锦
    nova-network创建初始化网络
    ubunt 基于deb 配置本地apt 源 分成仅本机使用,局域网使用2种
    使用HTML5监測站点性能
    写一个函数将传入的字符串转换成驼峰表示法
    简略的帧动画
    献给那些前端学习迷茫的人 -----前端开发必备的11项技能!!!
    排列组合(permutation)系列解题报告
    mysql 经常使用命令整理总结
  • 原文地址:https://www.cnblogs.com/xuanfly/p/11808589.html
Copyright © 2011-2022 走看看