首页 技术 正文
技术 2022年11月17日
0 收藏 728 点赞 3,509 浏览 8415 个字

买房子

总时间限制: 
1000ms

内存限制: 
65536kB
描述

某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子?(第一年年薪N万,房价200万)

输入
一行,包含两个正整数N(10 <= N <= 50), K(1 <= K <= 20),中间用单个空格隔开。
输出
如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible。
样例输入
50 10
样例输出
8
 1 #include<iostream>
2 #include<cstdio>
3 using namespace std;
4 int main()
5 {
6 int n,k,i,t;
7 cin>>n>>k;
8 t=n;
9 double p=200;
10 for( i=1;i<=20;i++)
11 {
12
13 if(n>p)
14 {
15 cout<<i;
16 break;
17 }
18 p=p*(1+k*1.0/100);
19 n+=t;
20
21 }
22 if(i>20)
23 {
24 cout<<"Impossible";
25 }
26 return 0;
27 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由美籍华裔科学家何大一于1996年提出,是通过三种或三种以上的抗病毒药物联合使用来治疗艾 滋病。该疗法的应用可以减少单一用药产生的抗药性,最大限度地抑制病毒的复制,使被破坏的机体免疫功能部分甚至全部恢复,从而延缓病程进展,延长患者生 命,提高生活质量。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式 进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给 出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。请写程序判定各种改进疗法效果如何。

输入
第一行为整数n( 1 < n <= 20);
其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。
这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。
输出
有n-1行输出,分别表示对应改进疗法的效果:
如果效果更好,输出better;如果效果更差,输出worse;否则输出same
样例输入
5
125 99
112 89
145 99
99 97
123 98
样例输出
same
worse
better
same
 1 #include<iostream>
2 #include<cstdio>
3 using namespace std;
4 int main()
5 {
6
7 int n,x,y;
8 cin>>n;
9 cin>>x>>y;
10 double b[n-1];
11 double a=y*1.0/x;
12 for(int i=0;i<n-1;++i)
13 {
14 cin>>x>>y;
15 b[i]=y*1.0/x;
16
17 }
18 for(int i=0;i<n-1;++i)
19 {
20 if(b[i]-a>0.05)
21 {
22 cout<<"better"<<endl;
23 continue;
24 }
25 if(a-b[i]>0.05)
26 {
27 cout<<"worse"<<endl;
28 continue;
29 }
30
31 cout<<"same"<<endl;
32 }
33 return 0;
34 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

救生船从大本营出发,营救若干屋顶上的人回到大本营,屋顶数目以及每个屋顶的坐标
和人数都将由输入决定,求出所有人都到达大本营并登陆所用的时间。

在直角坐标系的原点是大本营,救生船每次从大本营出发,救了人之后将人送回大本营。坐标系中的点代表屋顶,每个屋顶由其位置坐标和其上的人数表 示。救生船每次从大本营出发,以速度50 米/分钟驶向下一个屋顶,达到一个屋顶后,救下其上的所有人,每人上船1 分钟,船原路返回,达到大本营,每人下船0.5 分钟。假设原点与任意一个屋顶的连线不穿过其它屋顶。

输入
第一行,一个整数,表示屋顶数n。
接下来依次有n 行输入,每一行上包含两个表示屋顶相对于大本营的平面坐标位置的实数(单位是米)、一个表示人数的整数,数之间以一个空格分
开。
输出
一行,救援需要的总时间,精确到分钟 (向上取整)。
样例输入
1
30 40 3
样例输出
7
 1 #include <iostream>
2 #include<cmath>
3 using namespace std;
4 int main()
5 {
6 int n,p;
7 double x, y,sum=0;
8 cin >> n;
9 double d,a;
10 for (int i=0;i<n;++i)
11 {
12 cin >> x >> y >> p;
13 d = sqrt(x*x + y * y);
14 a = d*2 / 50.0+p*(1+0.5);
15 sum += a;
16 }
17 cout << ceil(sum);
18 return 0;
19 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。
编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?

输入
输入一个整数h,表示球的初始高度。
输出
输出包含两行:
第1行:到球第10次落地时,一共经过的米数。
第2行:第10次弹跳的高度。

注意:结果可能是实数,结果用double类型保存。
提示:输出时不需要对精度特殊控制,用cout << ANSWER,或者printf(“%g”, ANSWER)即可。

样例输入
20
样例输出
59.9219
0.0195313
 1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 double h,sum=0;
6 cin >> h;
7 double t = h;
8 for (int i=0;i<10;++i)
9 {
10 sum += t*2;
11 t /= 2;
12 }
13 cout << sum-h<< endl;
14 cout << t;
15 return 0;
16 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个整数,将经过处理得到1的过程输出来。

输入
一个正整数N(N <= 2,000,000)
输出
从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出”End”。如果输入为1,直接输出”End”。
样例输入
5
样例输出
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End
 1 #include <iostream>
2 #include<cstdio>
3 using namespace std;
4 int main()
5 {
6 long long i;
7 scanf("%lld", &i);
8 while (i != 1)
9 {
10 if (i % 2)
11 {
12 printf("%lld*3+1=%lld\n", i, i * 3 + 1);
13 i = i * 3 + 1;
14 }
15 else
16 {
17 printf("%lld/2=%lld\n", i, i / 2);
18 i = i / 2;
19 }
20 }
21 printf("End\n");
22 return 0;
23 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

监护室每小时测量一次病人的血压,若收缩压在90 – 140之间并且舒张压在60 – 90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数。

输入
第一行为一个正整数n,n < 100
其后有n行,每行2个正整数,分别为一次测量的收缩压和舒张压,中间以一个空格分隔。
输出
输出仅一行,血压连续正常的最长小时数。
样例输入
4
100 80
90 50
120 60
140 90
样例输出
2
 1 #include <iostream>
2 #include<cstdio>
3 using namespace std;
4 int main()
5 {
6 int n, x, y,count=0,a=0;
7 cin >> n;
8 for (int i=0;i<n;++i)
9 {
10 cin >> x >> y;
11 if (x>=90&&x<=140&&y>=60&&y<=90)
12 {
13 count++;
14 if (a<=count)
15 {
16 a = count;
17 }
18 }
19 else
20 {
21 count=0;
22 }
23 }
24 cout << a;
25 return 0;
26 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示。

输入
无。
输出
三行:
第一行是此自然数的十进制表示;
第二行是此自然数的七进制表示;
第三行是此自然数的九进制表示。
样例输入
(无)
样例输出
(不提供)
 1 #include <iostream>
2 #include<cmath>
3 #include<cstdio>
4 using namespace std;
5 int main()
6 {
7 /*cout << 248 << endl;
8 cout << 503 << endl;
9 cout << 305 << endl;*/
10 int a, b, c, n, i;
11
12 for (a = 1; a <= 6; a++)
13 {
14 for (b = 0; b <= 6; b++)
15 {
16 for (c = 1; c <= 6; c++)
17 {
18 if (a * 49 + b * 7 + c == c * 81 + b * 9 + a)
19 {
20 printf("%d\n", a * 49 + b * 7 + c);
21 printf("%d%d%d\n", a, b, c);
22 printf("%d%d%d\n", c, b, a);
23
24 }
25 }
26 }
27 }
28 return 0;
29 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。

现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。

输入
一个整数K。
输出
一个整数n。
样例输入
1
样例输出
2
 1 #include <iostream>
2 #include<cstdio>
3 using namespace std;
4 int main()
5 {
6 int k;
7 int n = 0;
8 double u = 0;
9 cin >> k;
10 while (u<=k)
11 {
12 ++n;
13 u += 1.0 / n;
14 }
15 cout << n;
16 return 0;
17 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

给定一个整数,要求从个位开始分离出它的每一位数字。

输入
输入一个整数,整数在1到100000000之间。
输出
从个位开始按照从低位到高位的顺序依次输出每一位数字。数字之间以一个空格分开。
样例输入
123
样例输出
3 2 1
 1 #include <iostream>
2 #include<cstdio>
3 using namespace std;
4 int main()
5 {
6 long long a;
7 cin >> a;
8 while (a!=0)
9 {
10 cout << a % 10 << " ";
11 a /= 10;
12 }
13 return 0;
14 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

输入
输入共 1 行,一个整数N。

-1,000,000,000 ≤ N≤ 1,000,000,000。

输出
输出共 1 行,一个整数,表示反转后的新数。
样例输入
样例 #1:
123样例 #2:
-380
样例输出
样例 #1:
321样例 #2:
-83
 1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int n, m = 0;
6 cin >> n;
7 for (; n != 0;)
8 {
9 m = m * 10 + n % 10;
10 n /= 10;
11 }
12 cout << m << endl;
13 return 0;
14 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

输入两个正整数 m 和 k,其中1 < m < 100000,1 < k < 5 ,判断 m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。

例如,输入:
43833 3
满足条件,输出YES。

如果输入:
39331 3
尽管有3个3,但不能被19整除,也不满足条件,应输出NO。

输入
m 和 k 的值,中间用单个空格间隔。
输出
满足条件时输出 YES,不满足时输出 NO。
样例输入
43833 3
样例输出
YES
 1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int m,k,count=0;
6 cin >> m >> k;
7 if (m%19==0)
8 {
9 while (m!=0)
10 {
11 if (m%10==3)
12 {
13 count++;
14 m = m / 10;
15 }
16 else
17 {
18 m=m/10;
19 }
20 }
21 if (count==k)
22 {
23 cout << "YES";
24 }
25 else
26 {
27 cout << "NO";
28 }
29 }
30 else
31 {
32 cout << "NO";
33 }
34 return 0;
35 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+…+n!)

输入
输入有一行,包含一个正整数n(1 < n < 12)。
输出
输出有一行:阶乘的和。
样例输入
5
样例输出
153
 1 #include <iostream>
2 using namespace std;
3 long fun(long long a)
4 {
5 if (a == 1)
6 {
7 return 1;
8 }
9 return a*fun(a - 1);
10 }
11 int main()
12 {
13 long long a;
14 long long sum = 0;
15 cin >> a;
16 for (int i=1;i<=a;++i)
17 {
18 sum += fun(i);
19 }
20 cout << sum;
21 return 0;
22 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

雇佣兵的体力最大值为M,初始体力值为0、战斗力为N、拥有X个能量元素。

当雇佣兵的体力值恰好为M时,才可以参加一个为期M天的战斗期,战斗期结束体力值将为0。在同一个战斗期内,雇佣兵每连续战斗n天,战斗力就会上升1点,n为当前战斗期开始时的战斗力。

一个战斗期结束后,雇佣兵需要用若干个能量元素使其体力恢复到最大值M,从而参加下一个战斗期。每个能量元素恢复的体力值不超过当前的战斗力。每个能量元素只能使用一次。

请问:雇佣兵的战斗力最大可以到达多少。

输入
一行包括三个整数M、N、X,相邻两个整数之间用单个空格隔开。M、N、X均为不超过10000的正整数。
输出
输出一个整数,为雇佣兵的最大战斗力。
样例输入
5 2 10
样例输出
6
 1 #include <iostream>
2 #include<cmath>
3 using namespace std;
4 int main()
5 {
6 int m,n,x;
7 cin>>m>>n>>x;
8 while(n<=m&&x>0)
9 {
10
11 x=x-ceil(m*1.0/n);
12 if(x<0)
13 {
14 break;
15 }
16 n=n+floor(m*1.0/n);
17 }
18 cout<<n;
19 return 0;
总时间限制: 
1000ms

内存限制: 
65536kB
描述

一个正整数,如果它能被7整除,或者它的十进制表示法中某一位上的数字为7,则称其为与7相关的数.现求所有小于等于n(n < 100)的与7无关的正整数的平方和.

输入
输入为一行,正整数n(n < 100)
输出
输出一行,包含一个整数,即小于等于n的所有与7无关的正整数的平方和。
样例输入
21
样例输出
2336
 1 #include <iostream>
2 #include<cmath>
3 #include<cstdio>
4 using namespace std;
5 int main()
6 {
7 int a;
8 long sum = 0;
9 cin >> a;
10 for (int i=1;i<=a;++i)
11 {
12 int t = i;
13 int b = t/ 10 % 10;
14 if (i<10)
15 {
16 if (i % 10 != 7)
17 {
18 sum += i * i;
19
20 }
21 }
22 else if (i%10!=7&&b!=7&&i%7!=0)
23 {
24 sum += i * i;
25 }
26 }
27 cout << sum;
28 return 0;
29 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。

例如当n=2时,写下1,2。这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5个“1”。

输入
正整数n。1 <= n <= 10000。
输出
一个正整数,即“1”的个数。
样例输入
12
样例输出
5
 1 //无脑求,没办法时才用
2 #include <iostream>
3 using namespace std;
4 int main()
5 {
6 int n,count=0;
7 cin >> n;
8 for (int i=1;i<=n;++i)
9 {
10 if (i%10==1)
11 {
12 count++;
13 }
14 if (i/10%10==1)
15 {
16 count++;
17 }
18 if (i / 100% 10 == 1)
19 {
20 count++;
21 }
22 if (i / 1000 % 10 == 1)
23 {
24 count++;
25 }
26 if (i / 10000 % 10 == 1)
27 {
28 count++;
29 }
30 }
31 cout << count;
32 }
 1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int n;
6 cin >> n;
7 int count = 0;
8 for (int i=1;i<=n;++i)
9 {
10 int t = i;
11 while (t)
12 {
13 count += (t % 10 == 1) ? 1 : 0;
14 t /= 10;
15 }
16
17 }
18 cout << count;
19 return 0;
20 }
总时间限制: 
1000ms

内存限制: 
65536kB
描述

输入一个正整数n,求第n小的质数。

输入
一个不超过10000的正整数n。
输出
第n小的质数。
样例输入
10
样例输出
29
#include <iostream>
#include <cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int n,m=0;
scanf("%d",&n);//cin >> n;
int a[n];//int *a = (int *)malloc(n * sizeof(int));
int t = 0;
for (int i = 2; ; ++i)
{
t = 0;
for (int j = 2; j <=sqrt(i); ++j)
{ if (i%j == 0)
{
t++;
} }
if (t == 0)
{ a[m] = i;
++m;
if (m==n)
{
printf("%d",a[n - 1]);//cout << a[n - 1];
//free(a);
return 0;
}
}
}}
//注意有的编译器不支持cin>>n,inta[n],需要动态开辟空间
总时间限制: 
1000ms

内存限制: 
65536kB
描述

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。

输入
一个整数(范围1到10000),表示天数。
输出
骑士获得的金币数。
样例输入
6
样例输出
14
 1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int n,m=0,sum=0;
6 cin >> n;
7 int i = 1, l = 1;
8 while (i<=n)
9 {
10 sum += l * (i - m);
11 ++l;
12 m = i;
13 i += l;
14 }
15 if (i!=n)
16 {
17 sum += l * (n - m);
18 }
19 cout << sum << endl;
20 return 0;
21 }
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,580
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918