主要以记录题目,分享源码为主
顺带记录做题心路历程
太久没有做题了,手生了,难免犯一些低级错误
最后,顺便对我的后续练习起到一个规划的作用
从键盘输入一个三位的正整数,输出它的各位之和与积。
358
在一行中输出结果,用一个半角空格隔开,行尾无空格。
16 120
#include
inline int read(){
int f=1,s=0;
char k=getchar();
while(k>'9'||k<'0'){if(k=='-')f=-1,k=getchar();}
while(k>='0'&&k<='9'){s=(s<<3)+(s<<1)+k-'0';k=getchar();}
return f*s;
}
int ins,sum,subs,temp;
int main(){
sum=0;
subs=1;
ins=read();
while(ins%10!=ins){
temp=ins%10;
sum+=temp;
subs*=temp;
ins/=10;
}
sum+=ins;
subs*=ins;
printf("%d %d",sum,subs);
return 0;
}
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。
输入第一行给出一个正整数D(1 ≤ D ≤ 7),代表星期里的某一天。
在一行中输出D天的后天是星期几。
3
5
#include
inline int read(){
int f=1,s=0;
char k=getchar();
while(k>'9'||k<'0'){if(k=='-')f=-1,k=getchar();}
while(k>='0'&&k<='9'){s=(s<<3)+(s<<1)+k-'0';k=getchar();}
return f*s;
}
int ins;
int main(){
ins=read();
if((ins+2)%7==0)putchar('7');
else printf("%d",(ins+2)%7);
return 0;
}
没有注意求余后0,n-1和1,n的区别,导致第一次结果差1,粗心和过度自信
为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5。请编写程序实现水费的计算。
输入在一行中给出非负实数x。
在一行输出应交的水费,精确到小数点后2位。
12
16.00
16
22.50
#include
inline int read(){
int f=1,s=0;
char k=getchar();
while(k>'9'||k<'0'){if(k=='-')f=-1,k=getchar();}
while(k>='0'&&k<='9'){s=(s<<3)+(s<<1)+k-'0';k=getchar();}
return f*s;
}
int ins;
double couts;
int main(){
ins=read();
if(ins<=15)couts=(4*ins)/3.0;
else couts=(2.5*ins-17.5);
printf("%.2lf",couts);
return 0;
}
根据钱江晚报官方微博的报导,最新的肥胖计算方法为:体重(kg) / 身高(m) 的平方。如果超过 25,你就是胖子。于是本题就请你编写程序自动判断一个人到底算不算胖子。
输入在一行中给出两个正数,依次为一个人的体重(以 kg 为单位)和身高(以 m 为单位),其间以空格分隔。其中体重不超过 1000 kg,身高不超过 3.0 m。
首先输出将该人的体重和身高代入肥胖公式的计算结果,保留小数点后 1 位。如果这个数值大于 25,就在第二行输出 PANG,否则输出 Hai Xing。
100.1 1.74
33.1
PANG
65 1.70
22.5
Hai Xing
#include
#include
double h,m,bmi;
int a;
int main(){
scanf("%lf%lf",&m,&h);
bmi=m/(h*h)*1.0;
a=floor(bmi);
printf("%.1lf\n",bmi);
if(a<=25)printf("Hai Xing");
else printf("PANG");
return 0;
}
箱子里有n个苹果,还混进了一条虫子(虫子是免费的)。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个(这虫子不错哦),那么经过y小时你还有多少个完整的苹果?
输入仅一行,包括三个整数,n,x和y。
剩余的完整苹果的个数。
在这里给出一组输入。例如:
10 3 10
在这里给出相应的输出。例如:
6
#include
inline int read(){
int f=1,s=0;
char k=getchar();
while(k>'9'||k<'0'){if(k=='-')f=-1,k=getchar();}
while(k>='0'&&k<='9'){s=(s<<3)+(s<<1)+k-'0';k=getchar();}
return f*s;
}
int n,x,y;
int temp;
int main(){
n=read(),x=read(),y=read();
temp=y/x;
if(y%x!=0)temp++;
if(n-temp<0)putchar('0');
else printf("%d",n-temp);
return 0;
}
老生常谈的自信问题和粗心问题,码力有所恢复,但是算法水平仍然堪忧,恐怕比普及组的学生都高不了多少。
read()函数为自行定义的一个快速读入整数的函数,不熟悉快读的朋友可以自行改为scanf()语句。