求n天后的日期
问题描述
写一个函数,传入年月日,计算它的第二天,并返回该日期。由用户输入年月日和一个n值,使用前述函数,计算该日期加n天的日期为多少。
个人总结
1. 传入的年月日,天数并入n种,从month开始遍历,days数组的下标是month-1,但是要判断本年和下一年是否是闰年。
2. 当月份是12月时,若day_sum减去12月天数后<0,则停留在这个月,若>0,则year++并且i归零
3. 要注意次序问题,i归零会多减一次。
#include <iostream>
//#include <vector>
//#include <string>
//#include <algorithm>
//#include <cmath>
//#include <iomanip>
//#include <set>
//#include <sstream>
//#include <bits/stdc++.h>
using namespace std;
int main(){
int year,month,day,n;
while(cin >> year >> month >> day >> n){
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if((year % 4 == 0 && year % 100 != 0)|| year % 400 == 0){
days[1] = 29;
}
else{
days[1] = 28;
}
int day_sum = day + n;
int last_month;
for(int i = month - 1; i < 12 ;i++){
if(day_sum - days[i] <= 0){
last_month = i+1;
break;
}
else if((day_sum - days[i] > 0) && i == 11){
day_sum -= days[i];
year ++;
i = -1;
if((year % 4 == 0 && year % 100 != 0)|| year % 400 == 0){
days[1] = 29;
}
else{
days[1] = 28;
}
}
else{
day_sum -= days[i];
}
}
cout << year << " " << last_month << " " << day_sum << endl;
}
return 0;
}
菱形输出
问题描述
明明这次又碰到问题了:
给定一个正整数N,明明的爸爸让他输出一个以Z开始的菱形,以后依次为Y,X…,
比如当N等于1的时候输出图形:
Z
当N等于2的时候,输出图形:(Y前没有空格,Z、X和W前一个空格)
Z
Y X
W
当N等于3的时候,输出图形(Z前两个空格,Y、X前一个空格,W前没有空格......):
Z
Y X
W V
U T
S
明明发现当N很大的时候就不是很容易了,所以找到了你,希望你编写一个程序帮助他
明明的问题可以归结为:输入一个正整数N,输出一个以Z开始的菱形,以后依次为Y,X…。
请尝试定义函数,该函数的功能是输出以上图形的一行。
个人总结
1. 字母是Z,单字符串,不能用string存储,可以用char存储
2. 存储在char中的字符是ascii码的形式,则直接将字符串-1可以获得上一个紧挨着的字符
3. 空格的输出需要多熟练掌握
#include <iostream>
//#include <vector>
//#include <string>
//#include <algorithm>
//#include <cmath>
//#include <iomanip>
//#include <set>
//#include <sstream>
//#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin >> n){
char s = 'Z';
bool first = true;
int k1 = 1;
for(int j = n ; j >= 1; j--){
for(int i = j-1; i >= 1 ; i--){
cout << " ";
}
if(first){
cout << s;
s = s-1;
first = false;
}
else
{
cout << s;
s = s-1;
for(int q = 1; q <= 2*k1 - 1;q++){
cout << " ";
}
cout << s;
s = s-1;
k1++;
}
cout << endl;
}
int k2 = k1 - 2;
bool nolast = true;
if(k2 == 0){
nolast = false;
}
for(int j = 1;j <= n-1 ; j++){
for(int i = j; i >= 1 ; i--){
cout << " ";
}
if(nolast){
cout << s;
s = s-1;
for(int q = 2*k2-1; q >= 1;q--){
cout << " ";
}
cout << s;
s = s-1;
k2--;
if(k2 == 0){
nolast = false;
}
}else{
cout << s;
}
cout << endl;
}
cout << endl;
}
return 0;
}
三角形的个数
问题描述
明明的爸爸常用玩游戏的方法来激发明明对几何学的兴趣。这天明明的爸爸和明明又玩起了有关三角形的游戏。
明明爸爸对明明说:“我们能不能构造一个周长为15的三角形?” “太简单了,”明明说道:“三条边长都是5的三角形,它的周长不就是15吗?” “明明真聪明,算得真快。”明明爸爸接着说:“可是,我不想要三条边都相等的三角形哪!” 明明大眼睛一转,说道:“那也好办啊,我只要对这个等边三角形的一条边减去一个数,再把这个数加到另一条边上就可以得到一个新的周长为15的三角形。例如,在第一条边上减去1,在第二条边上加上1,这样不就可以得到一个周长为15的新的三角形了吗?” “哇,明明太聪明了”爸爸称赞道。“对,如果把第一条边上减去的1加到第三条边上去不就又可以得到周长为15的另外一个新三角形了吗?”爸爸模仿着明明的方法和语气。 “不对呀,爸爸。你构造的三角形和我构造的三角形是同样的三角形。爸爸你看,我的三角形三条边分别长为4、6、5,而你的三角形三条边分别长为4、5、6,将三条边按其边长排序后都得到4、5、6,所以它们是同一个三角形,不是两个不同的三角形。” “啊,还是明明聪明。那还有没有其他周长为15的三角形吗?” “当然有啦。三条边边长分别为4、4、7的三角形,它的周长就是15,不过你可能不喜欢它,因为它有两条边的边长相等。” 明明和爸爸玩了一下午这样的三角形游戏,明明一共又构造了另外两个他认为他爸爸喜欢的三角形,即边长分别为2、6、7的三角形和边长分别为3、5、7的三角形。
晚上,明明躺在床上还在思考:如果周长不是15,而是90,那么爸爸喜欢的三角形有多少个呢?
明明的问题可以归结为:根据一个正整数n(3 ≤ n ≤ 100),要求统计出同时满足下列条件的三角形的个数:
-
边长都是整数。
-
周长为n。
-
边长两两不相等。
之所以有上述第一个条件,那是因为明明只知道正整数,没有学过分数和实数,因此他构造出的三角形的边长均为正整数。 请你写一个程序来帮助明明计算出他认为他爸爸喜欢的三角形的个数。
个人总结
1. 暴力循环遍历即可,三角形的成型条件是,两边之和大于第三边,题设条件三边不相等
#include <iostream>
//#include <vector>
//#include <string>
//#include <algorithm>
//#include <cmath>
//#include <iomanip>
//#include <set>
//#include <sstream>
//#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin >> n){
int a,b,c;
int lenth = n;
int count = 0;
for(a = 1 ; a <= lenth; a++){
for(b = 1; b <= lenth - a; b ++){
c = lenth - a - b;
if((a != b) && (b != c) &&(c != a) && (a + b > c) && ( b + c > a)&&( a + c > b)){
count ++;
}
}
}
cout << count/6 << endl;
}
return 0;
}
计算机英语翻译
1.数据分析引擎
同样的在19世纪,英国数学家和发明家charles babbage解决了(提出了)现代数据计算器的法则。他发明了许多机器,比如区别引擎(差分机),它被设计去解决复杂的数学问题。许多历史学家考虑babbage和他的同事,数学家Augusta Ada Byron,视为现代数据计算机领域真正的先锋。其中一个babbage的发明,数据引擎,有许多现代计算机的特点。它有一个一种以打孔纸片形式输入的输入流,一个“存储器”用于存储数据,一个“mill”去arithmetic操作(用于执行算术运算的“运算单元”),和一个打印器可以做一个长期的记录。Babbage没能成功的将想法付诸实践,但是它可能已经变成那个时期的技术难题(但是实现这一想法是完全可能的)。
work out 提出了
conceive v.想出,提出;怀孕
mill n.磨坊
单词打卡

342



被折叠的 条评论
为什么被折叠?



