math

Posted a-blog-of-taojiayi-2003

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了math相关的知识,希望对你有一定的参考价值。

lucas:

 

T2:

问题描述

给你一个除法表达式:X1/X2/X3/X4……/Xk 其中Xi是正整数并且 Xi <= 2 000 000 000( 1<=i<=k,k<=10 000 )。除法表达式应当按照从左到右的顺序求结果,例如:表达式1/2/1/2的值是1/4,你可以在表达E中嵌入括号改变计算顺序,例如表达式(1/2)/(1/2)的值是1。现在给你一个除法表达式E,计算是否能够通过加括号(或者不加)得到表达式E‘ ,E‘的值为整数。

输入文件

输入数据包括多组数据,每组数据占一行,给出的是题目描述的表达式E,E中不含空格。

输出文件

每组测试数据占一行如果能找到题目中描述的E‘ 则输出"YES"(不含引号),否则输出"NO" (不含引号)。

样例输入

1/2/1/2
2/3

样例输出

YES
NO

限制与约定

时间限制:1s

空间限制:128MB

思路 :第二个放在分母上,其他的都可以放在分子上。。。超int。。。

std:

#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
using namespace std;
const int maxn=1e4+5;
char ch[maxn*15];
int a[maxn],temp,k;
inline int read()
    int a=0;
    while(ch[temp]<0||9<ch[temp])temp++;
    while(0<=ch[temp]&&ch[temp]<=9)
        a=(a<<1)+(a<<3)+ch[temp++]-0;    
     
    return a; 

int main()
    while(scanf("%s",ch+1)>0)
        int len=strlen(ch+1);
        temp=1;k=0; 
        for(int i=1;ch[temp]!=\0;i++,k++)
            a[i]=read();
            //printf("%d ",a[i]);
        
        for(int i=1;i<=k;i++)
            if(i!=2)
                int d=__gcd(a[i],a[2]);//使用gcd约分,注意别超int。。。
                a[2]/=d;//第二个数一定是分母
            
        
        printf(a[2]==1?"YES\n":"NO\n");
    
    return 0;

 

以上是关于math的主要内容,如果未能解决你的问题,请参考以下文章

各类模块

内置对象

java面向对象编写的简单计算器

Java知识点

js中的Math

es6 | 新增语法 | 总结