第三章:数据结构决定程序
2015-03-05 20:52
239 查看
1.第1题解答
程序是线性分段函数,可用二分法定位对应的分段函数。
2.第4题解答
View Code
3.第8题解答
(待补充...)
程序是线性分段函数,可用二分法定位对应的分段函数。
2.第4题解答
#include<iostream> #include<string> #include<vector> using namespace std; int month[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 // 1 2 3 4 5 6 7 8 9 10 11 12 }; class D{ public: int year,mon,day;// 1900 <= year, 1 <= mon <= 12, // 1 <= day <= 31 D(){} D(int y, int m, int d): year(y),mon(m),day(d){} int yearday(void){//返回这一天是这一年的第几天 int sum = day; for( int i = 1; i < mon; i++ ) sum += month[i]; if( isrun() && mon > 2 ) sum ++; return sum; } bool isrun( void ){//是否是闰年 return (year%4==0&&year%100!=0)||(year%400==0); } }; int dist( D d1, D d2 ){//两个日期相差的天数 int sum = -(d1.yearday()); for( ; d1.year < d2.year ; d1.year++ ) sum += d1.isrun()?366:365; return sum + d2.yearday(); } int xingqiji( D d ){//某一天是星期几 D temp(1900,1,1); return dist( temp, d )%7+1; } int print(int year, int mon ){//输出某月日历 D d(year, mon, 1 ); int week = xingqiji(d); int sum = month[ mon ]; for( int i = 1; i < week; i++ ) cout << " "; for( int i = 1; i <= sum; i++){ cout << i << " "; if( week == 7 ){ week = 1; cout << endl; } else week++; } cout << endl; } int main(void){ D a(2015,3,5); cout << xingqiji(a) << endl; print(2015,3); return 0; }
View Code
3.第8题解答
(待补充...)
相关文章推荐
- 【编程珠玑】读书笔记 第三章 数据决定程序结构
- 第三章:数据决定数据结构
- 【编程珠玑】第三章 数据决定程序结构
- 编程珠玑:第三章 数据决定程序结构 习题解答
- 【编程珠玑】第三章:数据结构程序
- 数据结构编程笔记八:第三章 栈和队列 顺序栈和进位制程序的实现
- 第三章 数据决定程序结构
- 《编程珠玑》--第三章 数据决定程序结构
- 《编程珠玑》习题练习In Python——第三章 数据决定程序结构
- 高级对弈程序如Crafty(使用C语言编写)使用了特殊的数据结构
- 孙鑫视频教程里第三章的this指针小测试程序
- 第三章 程序注释
- 程序八卦:胡子决定编程语言运势
- 第三章:控制程序流程(控制才不至于程序成傻瓜)
- 数据结构-一元多项式加减程序
- Programming Windows程式开发设计指南->第三章 例子程序
- 第三章 编译并运行第一个程序
- 转发程序无法决定链接类型 推荐
- 重大决定+程序下载!
- TIJ 第三章 程序流程控制