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 "% ...
随机推荐
- A1002 A+B for Polynomials (25)(25 分)
1002 A+B for Polynomials (25)(25 分) This time, you are supposed to find A+B where A and B are two po ...
- Java消息中间件--初级篇
一. 为什么使用消息中间件? 假设用户登录系统 传统方式 用户登录 调用短息服务 积分服务 日志服务等各种服务 如果短息服务出现问题就无法发送短信而且用户登录成功必须所有调用全部完成返回 ...
- 关于html头部引用(meta,link)
/*这一段头部表示 如果安装了GCF,则使用GCF来渲染页面,如果为安装GCF,则使用最高版本的IE内核进行渲染.*/<meta content="IE=edge,chrome=1&q ...
- HTML5/CSS3速成教程
http://www.w3cfuns.com/thread-5592317-1-1.html
- 16、响应式布局和BootStrap 全局CSS样式知识点总结-part3
1.响应式工具 ①可用的类 <div class="container"> <a href="#" class="visible-x ...
- 『编写高质量代码Web前端开发修炼手册』读书笔记--高质量的CSS
1.怪异模式和DTD 标准模式:浏览器根据规范表现页面 怪异模式:模拟老浏览器行为防止老站点无法工作(为了兼容老式浏览器的代码),如果漏写DTD(Document Type Definition文档定 ...
- C++ STL map容器的说明测试1
// maptest.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h" /*********************************** ...
- Python+Selenium框架设计篇之-简单介绍unittest单元测试框架
前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unit ...
- python - 接口自动化测试 - TestRegister - 注册接口测试用例
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: test_register.py @ide: PyChar ...
- 使用hibernate建立mysql连接以及生成映射类和配置文件*.cfg.xml
建立数据库连接 找到window—open perspective—myeclipse database explore空白出右键new注意 driver template 和driver class ...