目录
1.四季
输入描述:
输出描述:
输入
输出
备注:
2.解
方法1:getchar+cin读取
提交结果
方法2:scanf指定读取宽度
方法3:cin以int类型读取+只取右侧两位
2.角谷猜想
题目描述
输入格式
输出格式
输入输出样例
解
代码
提交结果
3.质因数分解
题目描述
输入格式
输出格式
输入输出样例
解
两个质数乘积的性质
代码
提交结果
1.四季
https://ac.nowcoder.com/acm/contest/19304/O
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
气象意义上,通常以3~5月为春季(spring),6~8月为夏季(summer),9~11月为秋季(autumn),12月~来年2月为冬季(winter)。请根据输入的年份以及月份,输出对应的季节。
输入描述:
输入的数据格式是固定的YYYYMM的形式,即:年份占4个数位,月份占2个数位。输出描述:
输出月份对应的季节(用英文单词表示,全部用小写字母)。示例1
输入
复制201901
201901输出
复制winter
winter备注:
输入的年份应该是4位数,输入的月份应该为1~12。
要求利用switch&case结构
2.解
方法1:getchar+cin读取
#include <iostream>
using namespace std;
char reg;
int month;
int main()
{reg=getchar();reg=getchar();reg=getchar();reg=getchar();cin>>month;switch(month){case 3:case 4:case 5:cout<<"spring";break; case 6:case 7:case 8:cout<<"summer";break; case 9:case 10:case 11:cout<<"autumn";break; case 12:case 1:case 2:cout<<"winter";break; }
}
提交结果
方法2:scanf指定读取宽度
scanf("%4d%2d",®,&month);
其余同方法1
方法3:cin以int类型读取+只取右侧两位
cin>>n;m = n%100;switch (m)
其余同方法1
2.角谷猜想
题目描述
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘 3 加 1,如果是偶数,则除以 2,得到的结果再按照上述规则重复处理,最终总能够得到 1。如,假定初始整数为 5,计算过程分别为 16 、 8 、 4 、 2 、 1。
程序要求输入一个整数,将经过处理得到 1 的过程输出来。
输入格式
一个正整数 N(N≤2,000,000)。
输出格式
从输入整数到 11 的步骤,每一步为一行,每一部中描述计算过程。最后一行输出
End
。如果输入为 11,直接输出End
。输入输出样例
输入 #1
5输出 #1
5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 End
解
代码
#include <iostream>
using namespace std;
long long n;
int main()
{cin>>n;while(n!=1){if (n%2){cout<<n<<"*3+1="<<n*3+1<<endl;n=n*3+1;}else{cout<<n<<"/2="<<n/2<<endl;n=n/2;}}cout<<"End";return 0;
}
提交结果
3.质因数分解
https://www.luogu.com.cn/problem/B2084
题目描述
已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。
输入格式
输入只有一行,包含一个正整数 n(6<n<10^9)。
输出格式
输出只有一行,包含一个正整数 p,即较大的那个质数。
输入输出样例
输入 #1
21输出 #1
7
解
两个质数乘积的性质
结论:两个质数的乘积的值有4个约数
6=2*3(6的约数有且仅有4个:1,2,3,6)
21=3*7(27的约数有且仅有4个:1,3,7,21)
代码
反过来(从n-1到2)查比从2到n-1要快
#include <iostream>
using namespace std;
int n;
int main()
{cin>>n;for (int i=n-1;i>=2;i--){if (n%i==0){cout<<i;break; }}return 0;
}