CSU 1777: 大还是小?【模拟/后导0】
| 293419 | roniking | 1777 | 
 Accepted 
 | 
2032 | 0 | C++ | 2000 | 2018-04-03 19:21:25 | 
Description
Input
Output
Sample Input
1.0 2.0
0.00001 0.00000
0.0 0.000
Sample Output
Case 1: Smaller
Case 2: Bigger
Case 3: Same
Hint
Source
湖南省第十一届大学生计算机程序设计竞赛
【代码】:
【分析】:
[整数部分判断]:用string.find函数找到小数点的位置,在这之前的字符串转换为数值比较大小,若不相等则可以直接判断谁大谁小,否则还要继续判断小数位。
[小数部分判断]:截取小数点后的部分,若位数不同用0填补成相同位数。比如0.03和0.0300变成0300=0300或者0.0050和0.07变成0050<0700,这样位数相同可以直接用string比较字典序。
字典序解释:
设想一本英语字典里的单词,何者在前何者在后?显然的做法是先按照第一个字母、以 a、b、c……z 的顺序排列;如果第一个字母一样,那么比较第二个、第三个乃至后面的字母。如果比到最后两个单词不一样长(比如,sigh 和 sight),那么把短者排在前。通过这种方法,我们可以给本来不相关的单词强行规定出一个顺序。“单词”可以看作是“字母”的字符串,而把这一点推而广之就可以认为是给对应位置元素所属集合分别相同的各个有序多元组规定顺序:下面用形式化的语言说明。而数字也有字典序.
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<set>
#include<map>
#include<sstream>
#include<queue>
#include<cmath>
#include<list>
#include<vector>
#include<string> using namespace std; #define long long ll
const double PI = acos(-1.0);
const double eps = 1e-;
const int inf = 0x3f3f3f3f;
const int N = ;
int n, m, tot;
int a[][];
int x, y; int main()
{ string a, b;
int ai = , bi = , c = , ad, bd;
while(cin >> a >> b)
{
ai = , bi = , ad = , bd = ;
int x = a.find('.'); //
int y = b.find('.'); //1
//cout<<x<<endl;
for(int i=; i<x; i++)
{
ai = ai * + a[i] - '';
}
for(int i=; i<y; i++)
{
bi = bi * + b[i] - '';
}
printf("Case %d: ",c++);
//cout<<"ai = "<<ai<<" "<<"bi = "<<bi<<endl;
int ca = , cb = , pa, pb;
if(ai > bi)
{
printf("Bigger\n");
}
else if(ai < bi)
{
puts("Smaller");
}
else
//12.0050 12.007
//0500 700
{
//0.2 0.2000
string sa = a.substr(x+,a.size());
string sb = b.substr(y+,b.size());
int an = sa.size();//
int bn = sb.size();//
if(an > bn)
{
for(int i=; i<an-bn;i++)
{
sb += '';
}
}
if(an < bn)
{
for(int i=; i<bn-an;i++)
{
sa += '';
}
}
//cout<<sa<<" "<<sb<<endl;
if(sa > sb)
{
puts("Bigger");
}
else if(sa < sb)
{
puts("Smaller");
}
else
{
puts("Same");
}
}
} return ;
}
/*
0.0005000
0.0007
*/
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<set>
#include<map>
#include<sstream>
#include<queue>
#include<cmath>
#include<list>
#include<vector>
#include<string>
using namespace std;
#define long long ll
const double PI = acos(-1.0);
const double eps = 1e-;
const int inf = 0x3f3f3f3f;
const int N = ;
int n, m, tot;
int a[][];
int x, y; int main()
{ string a, b;
int ai = , bi = , c = , ad, bd;
while(cin >> a >> b)
{
ai = , bi = , ad = , bd = ;
int x = a.find('.'); int y = b.find('.');
for(int i=; i<x; i++)
ai = ai * + a[i] - '';
for(int i=; i<y; i++)
bi = bi * + b[i] - '';
printf("Case %d: ",c++); int ca = , cb = , pa, pb; if(ai > bi)
printf("Bigger\n");
else if(ai < bi)
puts("Smaller");
else
{
string sa = a.substr(x+,a.size());
string sb = b.substr(y+,b.size());
int an = sa.size();
int bn = sb.size();
if(an > bn)
for(int i=; i<an-bn;i++)
sb += '';
if(an < bn)
for(int i=; i<bn-an;i++)
sa += '';
if(sa > sb)
puts("Bigger");
else if(sa < sb)
puts("Smaller");
else
puts("Same");
}
} return ;
}
压行版(滑稽脸
CSU 1777: 大还是小?【模拟/后导0】的更多相关文章
- 数据结构:堆排序 (python版) 小顶堆实现从大到小排序 | 大顶堆实现从小到大排序
		
#!/usr/bin/env python # -*- coding:utf-8 -*- ''' Author: Minion-Xu 小堆序实现从大到小排序,大堆序实现从小到大排序 重点的地方:小堆序 ...
 - 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛 B - 大还是小? 字符串水题
		
B - 大还是小? Time Limit:5000MS Memory Limit:65535KB 64bit IO Format: Description 输入两个实数,判断第一个数大 ...
 - 【C++】数组-整数从大到小排序
		
1.实现过程 定义整型数组src,长度为10,初始化为{11,12,47,24,49,69,90,89,18,39}.之后用嵌套for循环比较相邻两个元素的大小,如果前一个元素大于后一个,不做任何操作 ...
 - linux系统下以存储从大到小并以K,M,G为单位的方式查看当前目录下的文件信息
		
zhuazai:https://blog.csdn.net/sty945/article/details/79830915 前言 ls命令 ls -a ls -l ll du命令 du -s du - ...
 - Java中通过Array.sort()对数组从大到小排序
		
package com.itheimajavase; import java.util.Arrays; import java.util.Comparator; public class Day01 ...
 - 嵌入式-C语言基础:快速选择排序实现从大到小排序
		
#include<stdio.h> int main() { /*简单选择排序:从大到小:一共比较sizeArr-1轮,每一轮的第一个数是arr[i],第一个数依次和它后面的每个数比较*/ ...
 - 嵌入式-c语言基础:冒泡排序实现从大到小排列
		
#include<stdio.h> int main() { /*冒泡排序:从大到小*/ /*i=0 第1轮(i+1):需要比较9次(sizeArr-i-1)*/ /*i=1 第2轮(i+ ...
 - hashmap先按照value从大到小排序,value相等时按照key从小到大排序
		
hashmap先按照value从大到小排序,value相等时按照key从小到大排序. [2]是从小到大排序,在[2]代码基础上交换o1,o2位置即可. 代码中用到[1]中提到的在value相等时再比较 ...
 - 查看进程,按内存从大到小 ,查看进程,按CPU利用率从大到小排序
		
查看进程,按内存从大到小 ps -e -o "%C : %p : %z : %a"|sort -k5 -nr 查看进程,按CPU利用率从大到小排序 ps -e -o "% ...
 
随机推荐
- 动态规划:HDU1176-免费馅饼
			
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
 - ListNode  Java创建链表
			
用了一种自创的比较简洁的方式来创建链表 class ListNode { //为了方便,这两个变量都使用pub1ic, //存放数据的变量,直接为int型 public int data; //存放结 ...
 - 如何提高STM32的学习效率
			
时间如何安排 做任何事情前,习惯写一个计划——要在一个月内上手STM32! 没有计划的日子,每天早上醒来睁开眼睛,却不知道自己今天要干啥 计划和时间安排: 第一阶段:找感觉——谈及STM32,立即反应 ...
 - Diycode开源项目 NodeListFragment分析
			
1.整体分析 1.1.作用讲解 这个类没有用到,只是一个备用的. 分类列表,用于定制首页内容 考虑到节点列表一般不会变化,所以直接将数据封装在客户端中,可以直接查看,提高效率. 1.2.整体分析 首先 ...
 - day05_10 作业
			
bug1.0版本 #购物车程序 salary = int(input("请输入你的工资")) item = ['iphone6s','macbook','coffee','pyth ...
 - 04 JVM是如何执行方法调用的(上)
			
重载和重写 重载:同一个类中定义名字相同的方法,但是参数类型或者参数个数必须不同. 重载的方法在编译过程中就可完成识别.具体到每一个方法的调用,Java 编译器会根据所传入参数的生命类型来选取重载方法 ...
 - js判断时间是否过期
			
var myDate=new Date(); myDate.setFullYear(2014,2,1); //2014年3月1日 //注意:表示月份的参数介于 0 到 11 之间.也就是说,如果希望把 ...
 - hibernate注解配置举例说明
			
Hibernate Annotation (Hibernate 注解) 进入:http://www.hibernate.org 说明文档: 英文:http://docs.jboss.org/h ...
 - mysql里制造一个错误
			
最近突然想到的,由于在触发器中执行失败事务性表会自动回滚. 所以就想制造一个错误,在群里问了问最后还真得到一个制造错误的方法,或者可以叫做自定义异常 SIGNAL SQLSTATE ' SET MES ...
 - windows通过NSF挂载centos目录
			
windows通过NSF挂载centos目录 来源: http://blog.csdn.net/u012955038/article/details/77151346 CentOS 配置 1.安装NF ...