算法笔记(胡凡)------------ch3简单模拟

3.3图形输出

【PAT B1036 】 跟奥巴马一起编程
#include <iostream>
using namespace std;
int main()
{
	int n; char c;
	cin >> n >> c;
	for (int i = 0; i < n; i++) {
		cout << c;
	}
	cout << endl;
	int t = n % 2 == 0 ? n / 2 : (n + 1) / 2;
	for (int i = 0;i < t - 2; i++) {
		for (int j = 0; j < n; j++) {
			if (j == 0) {
				cout << c;
			} else if (j == n - 1) {
				cout << c << endl;
			} else cout << " ";
		}
	}
	for (int i = 0; i < n; i++) {
		cout << c;
	}
	cout << endl;
	return 0;
} 

3.4日期处理

【codeup 1928】日期的差值
#include <iostream>
#include <algorithm>
using namespace std;
int n;
int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

bool isLeap(int y) {
	return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0);
}
int main()
{	
	int t1, t2;
	while (cin >> t1 >> t2) {
		if (t1 > t2) swap(t1, t2);
		int y1 = t1 / 10000, m1 = t1 % 10000 / 100, d1 = t1 % 100;
		int y2 = t2 / 10000, m2 = t2 % 10000 / 100, d2 = t2 % 100;		
		int res = 1;
		while (y1 != y2 || m1 != m2 || d1 != d2){
			res++;
			months[2] = 28;
			if (isLeap(y1)) months[2] = 29;	
			if (d1 < months[m1]) d1++;
			else{
				d1 = 1; m1++;
			}
			if (m1 == 13) {
				m1 = 1; y1++;
			}
			cout << res << endl;
		}
	}
	return 0;
}

3.4进制转换

【PAT B1022】D进制的A + B
/*
    D进制A+B
*/
#include <iostream>
using namespace std;
typedef long long ll;
int main()
{
    ll a,b,d,sum;
    cin >> a >> b >> d;
    sum = a + b;
    //res 存放D进制的每一位
    int res[31], i = 0;
    while (sum / d > 0) {
        res[i++] = sum % d;
        sum /= d;
    }
    res[i] = sum;
    while (i >= 0) {
        cout << res[i--];
    }
    return 0;
}

【codeup 5901】回文串
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string s;
    cin >> s;
    int i, j ,len = s.size();
    for (i = 0, j = len - 1; i < len && j >= 0 && s[i] == s[j];i++,j--);
    if (i == len && j == -1)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
}
这是一本零基础就能读懂的算法书籍,读者不需要因为自己没有语言基础而畏惧。书籍的第2章便是一个C语言的入门教程,内容非常易懂,并且十分实用,阅读完这章就可以对本书需要的C语言基础有一个较好的掌握。本书已经覆盖了大部分基础经典算法,不仅可以作为考研机试和PAT的学习教材,对其他的一些算法考试(例如CCF的CSP考试)或者考研初试的数据结构科目的学习和理解也很有帮助,甚至仅仅想学习经典算法的读者也能从本书中学到许多知识,本书还有配套的《算法笔记上机训练实战指南》本书的作者是同样经历过考研机试和各类算法考试的专家型学长,知晓这类考试中的痛点,以及考生在学习算法时容易产生困惑的地方,因此可以把本书看作是学长为你奉献的满满的经验干货,这是最有价值的东西。本书的最个试印版本献给了浙大考研学子,并令当年的浙大考研机试平均分增加了十多分,收获了考生的大量好评。但作者并没有止步于此,经过了半年多时间的内容完善和补充之后,新的版本在新一年的考研机试中再次获得了考生的一致赞美。最后,在经过精心整理之后,书籍终于定稿,并编撰成书。我们知道,纸质书籍的一个弱点就在于不能像软件一样随时更新内容,但本书采用了与二维码相结合的方式,使得本书变为能够随时更新内容的书籍,读者也可以随时从二 维码中找到勘误。这种作者和读者能够相互沟通的方式让书籍变“活”了,也能够帮助提升读者对知识的理解。 本书内容包括:C/C++快速入门、入门模拟算法初步、数学问题、C++标准模板库(STL)、数据结构专题(两章)、搜索专题、图算法专题、动态规划专题、字符串专题、专题扩展。书中每小节的末尾均印有二维码,用以实时更新或补充书籍的内容及发布本书的勘误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值