第一节程序大赛代码和心得(三):复杂问题平静心态,步步为营
2016-01-21 09:29
316 查看
3.林老师的作业
这道题没有做出来。关于double去尾转换成整型数的问题,我知道是根据精度不足这个思路。但是由于不甚了解计算机关于此的具体工作原理,只能在多次尝试之后放弃。
5.日期
较为复杂问题,一步一步来,代码可能较多,但是这样能确保结果无误。同时根据计算机工作原理,可以达到很多意想不到的效果。(比如源代码中 flag函数的使用。)
点击(此处)折叠或打开
#include <stdio.h>
int flag(int y)
{
if(y%4)
return 0;
else
return 1;
}
int main()
{
int cal[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int n,y=2013,m=1,d=1;
scanf("%d",&n);
int dn=365+flag(y);
while(dn<n)
{
y++;
n=n-dn;
dn=365+flag(y);
}
while(cal[flag(y)][m-1]<n)
{
n=n-cal[flag(y)][m-1];
m++;
}
d=n;
printf("%d-",y);
if(m<10)printf("0");
printf("%d-",m);
if(d<10)printf("0");
printf("%d\n",d);
return 0;
}
这道题没有做出来。关于double去尾转换成整型数的问题,我知道是根据精度不足这个思路。但是由于不甚了解计算机关于此的具体工作原理,只能在多次尝试之后放弃。
5.日期
较为复杂问题,一步一步来,代码可能较多,但是这样能确保结果无误。同时根据计算机工作原理,可以达到很多意想不到的效果。(比如源代码中 flag函数的使用。)
点击(此处)折叠或打开
#include <stdio.h>
int flag(int y)
{
if(y%4)
return 0;
else
return 1;
}
int main()
{
int cal[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int n,y=2013,m=1,d=1;
scanf("%d",&n);
int dn=365+flag(y);
while(dn<n)
{
y++;
n=n-dn;
dn=365+flag(y);
}
while(cal[flag(y)][m-1]<n)
{
n=n-cal[flag(y)][m-1];
m++;
}
d=n;
printf("%d-",y);
if(m<10)printf("0");
printf("%d-",m);
if(d<10)printf("0");
printf("%d\n",d);
return 0;
}
相关文章推荐
- 关于C++中的'extern &quot;C&quot;'
- Qt学习2
- (Qt学习1)Qt环境搭建
- C++中cin/cout高级格式化操作
- UBOOT-2010.06 移植 支持 下载yaffs2文件系统 (九)
- Java String类
- 彻底解决兼容问题Windows_7安装_Visual_C++_6.0(VC6)
- Qt学习之路(4):初探信号槽
- 编写安全代码:小心使用浮点数
- 一些经典排序算法的实现(C++实现)
- Java笔记16:多线程共享数据
- C语言复杂指针说明
- 关于C语言指针的用法
- 面试中经常碰到的C语言算法
- 使用Eclipse开发Android报错:Project has no target set. Edit the project properties to set one.
- 这样学习C语言最有效
- (整理)关于C语言中的输入和输出函数的一些运用
- 博客迁移到了Github
- qt俄罗斯方块 可以使用 (一)
- Java反射机制基础详解