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 "% ...
随机推荐
- (原创)task和function语法的使用讨论(Verilog,CPLD/FPGA)
1. Abstract function和task语句的功能有很多的相似之处,在需要有多个相同的电路生成时,可以考虑使用它们来实现.因为个人使用它们比较少,所以对它们没有进行更深的了解,现在时间比较充 ...
- 笔记-算法-KMP算法
笔记-算法-KMP算法 1. KMP算法 KMP算法是一种改进的字符串匹配算法,KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的.具体实现就是实现一 ...
- WPF实现QQ群文件列表动画(一)
QQ群大家都用过,先看下目前QQ的群文件列表容器的效果: 细心点大家就会发现,这玩意收缩和展开是带动画的,并不是很僵硬地直接收缩或者直接展开,毫无疑问,如果用WPF实现这样的效果,这里的最佳控件是Ex ...
- Js中的假值_ES5中定义的ToBoolean方法强制类型转换后值为false
你不知道的Javascript(中)--ToBoolean javascript中的值可以分为以下两类: 1.可以被强制类型转换为false的值 2.其他(被强制类型转换为true的值) 假值---以 ...
- 【Edit Distance】cpp
题目: Given two words word1 and word2, find the minimum number of steps required to convert word1 to w ...
- Python3.0-3.6的版本变化
Table of Contents Python3.0 简单的变化 语法的变化 新语法 改动的语法 剩下的变化 Python3.1 Python3.2 Python3.3 Python3.4 Pyth ...
- 【转载】zookeeper使用和原理探究(一)
最近开始看到一些公司在使用zookeeper,本身对此了解的很少,这里看到一篇非常好的文章,因此转载 原贴地址:http://www.blogjava.net/BucketLi/archive/201 ...
- 异常为"当IDENTITY_INSERT设置为OFF时" 解决办法
当 IDENTITY_INSERT 设置为 OFF 时,不能向表"A" 中的标识列插入显示值. 一般来说是自增ID造成的. 因此可以在数据库insert语句前加上 SET iden ...
- 指定某个git的版本代码拉取新的分支
在本地找到一个目录,执行 git clone http://gitlab.xxxxx.com/xxxxx/xxxxx.git cd xxxxx/ git log //找到对应版本的SHA值 例如2b1 ...
- vue - computed
computed 的作用主要是对原数据进行改造输出.改造输出:包括格式的编辑,大小写转换,顺序重排,添加符号……. 一.格式化输出结果: 我们先来做个读出价格的例子:我们读书的原始数据是price:1 ...