zoukankan      html  css  js  c++  java
  • pat 1060. Are They Equal (25)

    题目意思直接,要求将两个数转为科学计数法表示,然后比较是否相同  不过有精度要求

    /*
    test 6 
    3 0.00 00.00
    test 3
    3 0.1 0.001
    0.001=0.1*10^-2
    pay 
    前导0
    不同格式的0
    */
    
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    char a[105],b[105];
    struct num
    {
    	char s[105];
    	int k;
    }x,y;
    struct num getn(char a[],int n)
    {
    	int na=strlen(a),i,j=na,k=na,t,flag=0;
    	struct num x;
    	memset(x.s,'0',n*sizeof(char));
    	x.s[n]='';
    	for(i=0;i<na;i++)
    	{
    		if(a[i]>'0'&&a[i]<='9'&&!flag)
    		{
    			j=i;
    			flag=1;
    		}
    		if(a[i]=='.')k=i;
    	}
    //	printf("%d %d
    ",j,k);
    	if(j==na)
    	{
    		x.k=0;
    	}
    	else
    	{
    		t=0;
    		for(i=j;i<na&&t<n;i++)
    			if(i!=k)x.s[t++]=a[i];
    			if(k>j)x.k=k-j;
    			else
    				x.k=k-j+1;
    	}
    	//printf("%s %d
    ",x.s,x.k);
    	return x;
    
    }
    void deal(char a[],char b[],int n)
    {
    	x=getn(a,n);
    	y=getn(b,n);
    	if(!strcmp(x.s,y.s)&&x.k==y.k)printf("YES 0.%s*10^%d
    ",x.s,x.k);
    	else
    		printf("NO 0.%s*10^%d 0.%s*10^%d
    ",x.s,x.k,y.s,y.k);
    }
    int main()
    {
    
    	int na,nb,i,n,t,flag;
    	while(scanf("%d%s%s",&n,a,b)!=EOF)
    	{
    		deal(a,b,n);
    	}
    	return 0;
    }
    


     

  • 相关阅读:
    sass学习笔记1
    javascript 数组的深度复制
    div+css定位position详解
    滚动加载图片(懒加载)实现原理
    移动端布局经验
    js 扁平化输出数组
    axiso基本使用及python接收处理
    JSP内置对象
    JSP基本语法
    tomcat环境搭建
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3297347.html
Copyright © 2011-2022 走看看