ZJH学长的茶叶
题目
Description
ZJH学长非常喜欢喝茶,也经常买各种各样的茶叶。ZJH总是抱怨自己的钱不知道花哪去了。现在给出ZJH本学期买的每种茶叶的数量和价格,请你帮ZJH学长算出他每月买茶叶花了多少钱。
Input
第一行输入一个整数n(1<=n<=1000),表示ZJH每月买的茶叶的种类数量。接下来n行每行输入两个整数m和p(1<=m,p<=100000),表示每种茶叶的数量和单价。
** Output**
输出一个整数,表示学长本学期买茶叶花的钱数。
Sample Input 1
3
5 10
6 8
5 1
Sample Output 1
103
【题解】
#include<iostream>
using namespace std;
int main()
{
int n,i;
long long a[1005][2];//注意数据类型
long long t, s=0;
cin >> n;
for (i = 0; i < n; i++)
cin >> a[i][0] >> a[i][1];
for (i = 0; i < n; i++)
{
t = a[i][0] * a[i][1];
s += t;
}
cout << s;
return 0;
}
以贰之名
Description
众所周知,DV学长和TYY学长是关系非常好的基友,他们经常以“儿子“互称。有一天DV学长给TYY学长出了一道题,如果TYY学长解出了这道题就可以拥有一半的糖果,否则DV学长将吃掉所有的糖果。TYY学长非常想吃到糖果,你能帮帮她嘛?
具体来说:现在有从2到n这n-1个的数,现在要删除若干个数,使得剩下的数中,一定有一个数能被剩下的数整除,问最少要删除多少个数? Input 输入只有一个数n,表示有2~n这n-1个数(1<=n<=1e9)
Output 需要最少删除的数的个数。
Sample Input 1
5
Sample Input 2
4
Sample Input 3
3
Sample Outout 1
2
Sample Output 2
1
Sample Outout 3
1
Hint
n=5时,有2、3、4、5这四个数,删掉3、5后,才能保证有一个数2能被剩下的数2、4整除
分析
由于是从2开始,所以只要删去2~n这n-1个数中的奇数即可
【题解】
1.错误解法
#include<iostream>
using namespace std;
int main()
{
long long n,k;
cin >> n;
for (int i = 2; i <= n; i++)
{
if (i % 2 == 1)k++;
}
cout << k;
return 0;
}
由于数据太大,遍历所需的时间过长,会导致部分测试点超时
2.正解
#include<iostream>
using namespace std;
int main()
{
long long n,k;
cin >> n;
k = n / 2;//求出偶数个数
cout << n-k-1;//注意数据是从2开始的,需要减掉1
return 0;
}
经过找规律发现,n/2恰好为偶数个数,则奇数个数为n-n/2,须要特别注意的是1并不在范围内,所以奇数个数减1
爱出简单题的SL学长
题目
Description
SL学长特别喜欢给别人出一些奇奇怪怪的问题。这天他又在训练室给大家出了一道题,你能帮忙解答嘛?
题目:如果1== 5;2== 10;3== 25;4== 125;那么5==???
Input
无
Output
输出5等于多少
Sample Input 1
(无)
Sample Output 1
(如上所述)
Hint
如果你在想找规律,看看如果后面是什么
分析
这是一道签到题,好好读题就能搞定
【题解】
#include<iostream>
using namespace std;
int main()
{
cout << '1';
return 0;
}
准备去爬莫干山的徐老爷
题目
Description
在某饼同学中午吃完方形大饼后,下午去找徐老爷爬莫干山,但秃头的徐老爷在实验室的空调屋里沉迷于"角谷猜想"无法自拔,非要做完题后再跟某饼同学爬莫干山,你能帮帮他吗?
所谓角古猜想是指,对于任意一个正整数n,有规则:1)若n是奇数,那么对n乘3加1;2)若n是偶数,那么对n除以2。得到的结果再按照上述规则重复处理,最终总能够得到1。例如:给定n=5,计算过程分别为16、8、4、2、1。要求输入一个整数n,将经过处理得到1的过程输出来。
Input
一个正整数N(0 < N ≤ 2,000,000)。
Output
从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果输入为1,直接输出"End"。
Sample Input 1
5
Sample Output 1
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End
分析
此题是一个原题,较为简单
【题解】
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
while(n!=1)
{
if(n%2!=0)
{
cout<<n<<"*3+1="<<3*n+1<<endl;
n=3*n+1;
}
if(n%2==0)
{
cout<<n<<"/2="<<n/2<<endl;
n=n/2;
}
}
cout << "End" << endl;
return 0;
}
太极阴阳鱼
Description
茄子同学最近在上“中国文化概论”,对老师讲的太极图非常感兴趣,一个太极图有两条阴阳鱼拼成,阴阳鱼的头部各由一个半圆组成,正常的太极图时如下图。
这是小机灵鬼茄子同学灵机一动,他想水平移动阴阳鱼中的交点P(如下图),得使阴阳鱼的头部长度之比为a:b,以下图为例,两个长度之比为3:7。现在他很好奇两条阴阳鱼的面积之比Sa:Sb。(深色部分面积为Sa,浅色部分面积为Sb)
Input
有多组输入每组输入两个正整数a,b,(1<=a,b<=10^9) Output 每组输出阴阳鱼面积的之比Sa/Sb结果保留六位小数
Sample Input 1
1 1
3 3
5 2
Sample Output 1
1.000000
1.000000
2.500000
分析
这是一道数学分析题,通过观察可以发现Sa和Sb的计算公式,然后相比并化简的面积之比为a/b。
【题解】
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
long long a,b;
long double s;
while (cin >> a >> b)
{
s = 1.0 * a / b;
cout << fixed << setprecision(6) << s;
}
return 0;
}
未完待续~