hdoj第2000题c语言答案,hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b

本文主要是介绍hdoj第2000题c语言答案,hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

hdoj上一道有意思的题目,题目:

人见人爱a+b

敲的也蛮快的,大概十分钟左右就AC了。代码如下:

人见人爱a+b

#include

int main()

{

int n,i,j,a1,a2,a3,b1,b2,b3,c1=0,c2=0,c3=0;//c1记录小时,c2记录分钟,c3记录秒;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

scanf("%d%d%d%d%d%d",&a1,&a2,&a3,&b1,&b2,&b3);

c3=a3+b3;

if(c3>=60)

{

c3=c3-60;

c2++;//分钟+1;

}

c2=c2+a2+b2;

if(c2>=60)

{

c2=c2-60;

c1++;//小时+1;

}

c1=c1+a1+b1;

printf("%d %d %d\n",c1,c2,c3);

c1=0;

c2=0;

c3=0;

}

return 0;

}

bfb7ec7214ef0e7efa88c3b80969b592.png

这题蛮有意思的,与往常的a+b题目不同,这里的a和b有一定的范围,它和时间计数的小时分钟秒类似,其中的分钟和秒的具体范围是0-60,于是相加以后就要判断有没有超出范围,有的话小时+1或者分钟+1。

回顾之前的面向对象程序设计课第二次作业,其题目也是不走寻常路,我在之前的博客也记录了它:程序设计第二次作业

这里来说说A+B*C和A+B/C的情况。

一、A+B*C

要求:输入均为整数,数值范围在(-1000000,1000000)之间。

代码如下:

#include

int main()

{

int a, b,c,n;

scanf("%d %d %d",&a,&b,&c);

n=a+b*c;

if(n<0)

{

printf("-");//输出“-”号

n=-n;//取其绝对值

}

if(n<1000) printf("%d\n",n );

else if(n<1000000) printf("%d,%03d\n",n/1000,n%1000 );

else printf("%d,%03d,%03d\n",n/1000000,n%1000000/1000,n%1000 );//判断n的范围,用0补充位数

return 0;

}

A+B*C的做法与第二次作业的做法类似,用n来记录a+b*c的值,首先取其绝对值,如果是负数输出-号;再进行范围判断,通过%03d来补充位数。

二、A+B/C

要求:输入均为整数,数值范围在(-1000000,1000000)之间。保留两位小数。

代码如下:

#include

int main()

{

int a,b,c,intn=0,intp=0;

double dout=0,doum=0;

scanf("%d%d%d",&a,&b,&c);

intn=a+b*1.0/c;//n is int; mistake: b*1.0/c;

dout=a+b*1.0/c;//t is double; mistake: b*1.0/c;

doum=dout-intn;//doum : decimal

intp=doum*100;//intp : (int)decimal*100

if(intp<0)intp=-intp;// |intp|;

if(intn<0)

{

printf("-");

intn=-intn;

}

if(intn<1000) printf("%d",intn );

else if(intn<1000000) printf("%d,%03d",intn/1000,intn%1000 );

else printf("%d,%03d,%03d",intn/1000000,intn%1000000/1000,intn%1000 );

printf(".%02d",intp);//print the part of decimal

return 0;

}

//-10 1 3

//-10 1 4

//-1000000 1 3

//1000000 1 4

//-1000 9 1

要求二相对要求一和之前的题目来说更难一些,我简单的阐述一下我的思路:

我定义整形变量intn和intp,intn来存储a+b/c的整数部分,intp来存储a+b/c的小数*100,也就是说我输出的时候,整数部分交由之前的方法处理,输出整数部分以后输出.和intp的绝对值。

取小数部分的做法:我先用一个int变量intn存储a+b/c的值,再用double类型的变量dout存储a+b/c的值,用两个值作差来得到小数部分,用double类型的doum来存储,最后intp把doum*100存储(相当于小数点后两位的数字)。

还有一个注意点是,最后我输出的格式:printf(".%02d",intp);用0补充位数。

遇到的问题:

b81e7c15200e3dfab2b0f7551d42a752.png

在之前的代码里,我在给intn赋值的语句是:intn=a+b/c,这这导致b/c的计算结果是0,而不是我想要的0.33。

改进:intn=a+b*1.0/c

通过这一类型的题目,让我巩固了一些遗漏的知识点。a+b看似很简单,但是其中的题目还是隐藏着“杀机”。

2016/2/26

程序设计第二次作业&lt&semi;1&gt&semi;

面向对象程序设计第二次作业<1> Github 链接:https://github.com/Wasdns/object-oriented 题目: <1>第一次尝试 我立马认识到 ...

C语言程序设计第二次作业--顺序结构

C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include

面向对象程序设计 第二次作业&lt&semi;1&gt&semi;

Github链接:https://github.com/zora02/object-oriented/tree/master/1001.A%2BB%20Format%20(20) 一.解题 题目 解题 ...

C语言程序设计第二次作业——顺序结构

(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. 错误信息1: 错误原因:i和d位置错误 改正方法:i和d位置互换 错误信息2: 错误原因:\n后缺了一个" 改正方法:\n后加一个 ...

C语言程序设计第二次作业—————顺序结构改

1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include int mian() { ...

C语言程序设计第二次作业1

(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...

C语言程序设计第二次作业0

(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...

C语言程序设计第二次作业—————顺序结构

(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...

C语言程序设计第二次作业

一.学习内容 掌握关系运算符.逻辑运算符.条件运算符 掌握常用数学函数的用法 if语句(单分支,双分支和多分支) 用switch语句实现多分支 理解多个if语句,if...else if... 和if ...

随机推荐

expdp 报The value &lpar;30&rpar; of MAXTRANS parameter ignored错误的原因诊断

在使用expdp导出一个表的数据时遇到了下面情况,也不见其提示报错信息,一下子就执行完了,也没有导出我需要的数据 [oracle@getlnx01 dump_dir]$ expdp system/xx ...

javascript里的封装

用javascript闭包的特性,可以模拟实现私有变量.私有方法. var myObject = =(function(){ var privateValue; function privateMet ...

修改emlog表字段名称

在em_twitter表中增加一个字段. ,添加一个字段isImportant alter table em_twitter add isImprotant ) not ; ,把字段isImprota ...

HDU5772 String problem(最大权闭合子图)

题目..说了很多东西 官方题解是这么说的: 首先将点分为3类 第一类:Pij 表示第i个点和第j个点组合的点,那么Pij的权值等于w[i][j]+w[j][i](表示得分) 第二类:原串中的n个点每个 ...

扩展 IEnumerable&lt&semi;T&gt&semi;,让它根据另一个集合的顺序来排列

假如我有两个集合: public class Teacher { public int Id { get; set; } public string Name { get; set; } } publ ...

ylbtech-Unitity-CS&colon;Hello world

ylbtech-Unitity-CS:Hello world 1.A,效果图返回顶部   1.B,源代码返回顶部 1.B.1,Hello1.cs public class Hello1 { publi ...

codeforces&num;253 D - Andrey and Problem里的数学知识

这道题是这种,给主人公一堆事件的成功概率,他仅仅想恰好成功一件. 于是,问题来了,他要选择哪些事件去做,才干使他的想法实现的概率最大. 我的第一个想法是枚举,枚举的话我想到用dfs,但是认为太麻烦. ...

浅谈MVC中的service层(转)

概述 mvc框架由model,view,controller组成,执行流程一般是:在controller访问model获取数据,通过view渲染页面. mvc模式是web开发中的基础模式,采用的是分层 ...

react项目请求数据的fetch的使用

准备三个文件(封装请求函数),然后测试一下,能不能调用数据 第一个文件  request.js import 'whatwg-fetch'; /** * Parses the JSON returne ...

这篇关于hdoj第2000题c语言答案,hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/221006

相关文章

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验