总时间限制: 1000ms 内存限制: 65536kB
描述
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。
输入
一个正整数N(N <= 2,000,000)
输出
从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果输入为1,直接输出"End"。
样例输入
样例输出
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End
代码
#include<stdio.h>
int main()
{
long long int n;
scanf("%lld",&n);
if(n==1)
printf("End");
else if(n>0&&n<=2000000){
do{
if(n%2==0){
printf("%lld/2=%lld\n",n,n/2);
n=n/2;
}
else{
printf("%lld*3+%d=%lld\n",n,1,n*3+1);
n=n*3+1;
}
}while(n!=1);
printf("End");
}
return 0;
}
总时间限制: 1000ms 内存限制: 65536kB
描述
监护室每小时测量一次病人的血压,若收缩压在90 - 140之间并且舒张压在60 - 90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数。
输入
第一行为一个正整数n,n < 100
其后有n行,每行2个正整数,分别为一次测量的收缩压和舒张压,中间以一个空格分隔。
输出
输出仅一行,血压连续正常的最长小时数。
样例输入
4
100 80
90 50
120 60
140 90
样例输出
2
代码
#include<stdio.h>
int main()
{
int n,i;
int a,b,max=0,sum=0;
scanf("%d",&n);
if(n>0&&n<100){
for(i=1;i<=n;i++){
scanf("%d%d",&a,&b);
if((a>=90&&a<=140)&&(b>=60&&b<=90)){
sum++;
if(sum>max)
max=sum;
}
else
sum=0;
}
printf("%d",max);
}
return 0;
}
总时间限制: 1000ms 内存限制: 65536kB
描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。
输出
输出共 1 行,一个整数,表示反转后的新数。
样例输入
样例 #1:
123样例 #2:
-380
样例输出
样例 #1:
321样例 #2:
-83
代码
#include<stdio.h>
#include<math.h>
int main()
{
long long int n,newnum=0;
scanf("%lld",&n);
if(abs(n)<=1000000000){
while(n){
newnum=newnum*10+n%10;
n=n/10;
}
printf("%lld",newnum);
}
return 0;
}
总时间限制: 1000ms 内存限制: 65536kB
描述
一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示。
输入
无。
输出
三行:
第一行是此自然数的十进制表示;
第二行是此自然数的七进制表示;
第三行是此自然数的九进制表示。
样例输入
(无)
样例输出
(不提供)
代码
#include <stdio.h>
int main()
{
int a,b,c;
// 用三重循环穷举3位7进制数
for (a=1;a<7;a++)
for (b=0; b<7; b++)
for (c=1; c<7; c++)
{
// 判断7进制数与倒过来的9进制数是否相同
if (a*7*7+b*7+c == c*9*9 + b*9 + a)
{
printf("%d\n", a*7*7+b*7+c);
printf("%d%d%d\n",a,b,c);
printf("%d%d%d\n",c,b,a);
return 0;
}
}
return 0;
}
总时间限制: 1000ms 内存限制: 65536kB
描述
雇佣兵的体力最大值为M,初始体力值为0、战斗力为N、拥有X个能量元素。
当雇佣兵的体力值恰好为M时,才可以参加一个为期M天的战斗期,战斗期结束体力值将为0。在同一个战斗期内,雇佣兵每连续战斗n天,战斗力就会上升1点,n为当前战斗期开始时的战斗力。
一个战斗期结束后,雇佣兵需要用若干个能量元素使其体力恢复到最大值M,从而参加下一个战斗期。每个能量元素恢复的体力值不超过当前的战斗力。每个能量元素只能使用一次。
请问:雇佣兵的战斗力最大可以到达多少。
输入
一行包括三个整数M、N、X,相邻两个整数之间用单个空格隔开。M、N、X均为不超过10000的正整数。
输出
输出一个整数,为雇佣兵的最大战斗力。
样例输入
5 2 10
样例输出
6
代码
#include<stdio.h>
int main()
{
int m,M,N,X;
m=0;
scanf("%d%d%d",&M,&N,&X);
while(X>0){
X--;
m=m+N;
if(m>=M)
{
N=N+M/N;
m=0;//体力值清零
}
}
printf("%d",N);
return 0;
}
总时间限制: 1000ms 内存限制: 65536kB
描述
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。
比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。
输入
输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开。
输出
输出共 1 行,表示数字 2 出现的次数。
样例输入
样例 #1:
2 22样例 #2:
2 100
样例输出
样例 #1:
6样例 #2:
20
代码
#include<stdio.h>
int main()
{
int i,n,L,R,num=0;
scanf("%d%d",&L,&R);
for(i=L;i<=R;i++){
n=i;
while(n){
if(n%10==2)
num++;
n=n/10;
}
}
printf("%d",num);
return 0;
}
样例输出
样例 #1:
6样例 #2:
20
代码
#include<stdio.h>
int main()
{
int i,n,L,R,num=0;
scanf("%d%d",&L,&R);
for(i=L;i<=R;i++){
n=i;
while(n){
if(n%10==2)
num++;
n=n/10;
}
}
printf("%d",num);
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容