1210 班费问题
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 4577 | 通过数 : 1420
题目描述
期末了,班长CoCo决定将剩余班费x元钱用于购买若干支钢笔进行奖励。商店里有三种钢笔,单价分别为6元、5元和4元。小Q想买尽量多的笔,并且不再剩余钱。请帮小Q制定出一种买笔的方案。若无解(指所有方案都有剩余钱)则输出“No Answer”。
输入要求
班费x元
输出要求
有解时依次输出6元、5元和4元钢笔各买支数。若无解(指所有方案都有剩余钱)则输出“No Answer”,输出不包含双引号。
输入样例
35
输出样例
1 1 6
提示
如果有多种满足条件的方案,请选择购买5元笔数量少的方案!!!
来源
NBU OJ
#include<stdio.h> //C
int main(){
int x,i,j,k;
scanf("%d",&x);
for(i=x/4;i>=0;i--){
for(j=(x-4*i)/5;j>=0;j--){
k=x-4*i-5*j;
if(k%6==0){
printf("%d %d %d\n",k/6,j,i);
return 1;
}
}
}
if(i==0&&j==0&&x%6) printf("No Answer\n");
return 0;
}
1211 还是鸡兔同笼
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 11130 | 通过数 : 5078
题目描述
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。
输入要求
第一行是测试数据的组数n,后面跟着n行输入。每组测试数据占一行,每行包含一个正整数a,代表笼子里面脚的总数。
输出要求
输出包含n行,每行对应一个输入,包含2个正整数,第一个是最少的动物数,第二个是最多的动物数。如果没有满足要求的答案,则输出两个0。
输入样例
2
3
20
输出样例
0 0
5 10
提示
来源
POJ
#include<stdio.h> //C
int main(){
int n,min,max,a,i,j;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a);
min=max=0;
if(a%2==0&&a>=2){
max=a/2;
for(j=0;a>=4;j++) a-=4;
if(a==2) min=j+1;
else if(a==0) min=j;
}
printf("%d %d\n",min,max);
}
return 0;
}
1212 小于某数的整数和
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 3024 | 通过数 : 2210
题目描述
给定一个正整数a,以及另外的5个正整数,请问:这5个正整数中,小于a的那些整数的和是多少?
输入要求
先输入一个正整数a,再输入另外5个正整数。
输出要求
计算这5个整数中,小于a的那些整数的和是多少,输出结果。
输入样例
10 7 8 9 11 2
输出样例
26
提示
来源
NBU OJ
#include<stdio.h> //C
int main(){
int a,x,i,s=0;
scanf("%d",&a);
for(i=0;i<5;i++){
scanf("%d",&x);
if(x<a) s+=x;
}
printf("%d\n",s);
return 0;
}
1213 判断亲密数
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 11733 | 通过数 : 6331
题目描述
如果整数A的全部因子(包括1,不包括A本身)之和等于B,并且整数B的全部因子(包括1,不包括B本身)之和等于A,则称整数A和B为亲密数。任意输入两个正整数,判断他们是否为亲密数。若是亲密数,则输出1,否则输出0.
输入要求
输入两个整数。
输出要求
若是亲密数,则输出1,否则输出0。
输入样例
220 284
输出样例
1
提示
来源
NBU OJ
#include<stdio.h> //C
int main(){
int a,b,i,s=0,sum=0;
scanf("%d%d",&a,&b);
for(i=1;i<a;i++){
if(a%i==0) s+=i;
}
for(i=1;i<b;i++){
if(b%i==0) sum+=i;
}
if(s==b&&sum==a) printf("1\n");
else printf("0\n");
return 0;
}
1214 打印菱形
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 12480 | 通过数 : 5798
题目描述
打印出一个由符号“*”组成的菱形图案。
输入要求
输入一个整数n(奇数), 表示菱形的行数。
输出要求
菱形用字符 * 表示,每行都没有后缀的空格。
输入样例
5
输出样例
*
***
*****
***
*
提示
来源
NBU OJ
#include<stdio.h> //C
int main(){
int n,i,j,x;
scanf("%d",&n);
x=(n+1)/2;
for(i=0;i<x;i++){
for(j=0;j<x-1-i;j++) printf(" ");
for(j=0;j<2*i+1;j++) printf("*");
printf("\n");
}
for(i=0;i<x-1;i++){
for(j=0;j<=i;j++) printf(" ");
for(j=2*(x-i)-3;j>=1;j--) printf("*");
printf("\n");
}
return 0;
}
1215 小神探的小问题
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 11899 | 通过数 : 5314
题目描述
小神探CoCo在某次案件调查中需要研究一些地图,但是其中一些地图使用公里为单位,而另一些使用英里为单位。假设CoCo希望全部采用公里计量,你可以帮她写出转换程序吗?已知1英里等于1.609公里。
输入要求
输入以英里表示的距离。
输出要求
输出以公里表示的距离,结果保留两位小数。
输入样例
10
输出样例
16.09
提示
来源
NBU OJ
#include<stdio.h> //C
int main(){
double x;
scanf("%lf",&x);
printf("%.2f\n",1.609*x);
return 0;
}
1216 冰箱的温度
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 3511 | 通过数 : 2867
题目描述
夏天用电高峰时容易断电,请编写程序预测断电一段时间以后冰箱内的温度T(°C),假设该温度T可由以下公式计算得到结果:
T=4t2/(t+2)-20
断电后所经过的时间t是给定的。
输入要求
从键盘输入断电后经过的时间t。
输出要求
输出断电t小时后冰箱内的温度,保留2位小数。
输入样例
2.5
输出样例
-14.44
提示
浮点数建议用double
来源
NBU OJ
#include<stdio.h> //C
int main(){
double t;
scanf("%lf",&t);
printf("%.2f\n",4*t*t/(t+2)-20);
return 0;
}
1217 超市硬币处理机
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 9115 | 通过数 : 2955
题目描述
超市前放置了一个硬币处理机,可以帮你把零钱转换为存款单。在实际应用中,机器中将有相应装置自动识别并计算你的零钱的数目,但是我们现在只能先进行一个模拟的小实验,由你自己输入每种硬币的数目,然后编写程序将其转换成存款单。
输入要求
依次输入1元、5角、1角的零钱的个数。假如输入三个整数3 10 25,则表示有3个1元硬币、10个5角硬币和25个1角的硬币。
输出要求
输出存单金额,如对上例的输入,输出为
Dollars=10
Change=50
表示存单上的整数金额为10元,零钱金额为50分。
即要求Dollars后显示的是**元的信息,Change后面显示的是**分的信息。
输入样例
3 0 10
输出样例
Dollars=4 Change=0
提示
来源
NBU OJ
#include<stdio.h> //C
int main(){
int a,b,c,s=0;
scanf("%d%d%d",&a,&b,&c);
s=100*a+50*b+10*c;
printf("Dollars=%d\nChange=%d\n",s/100,s%100);
return 0;
}
1218 正方形还是圆形
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 11497 | 通过数 : 6128
题目描述
首先从键盘读入一个浮点数x,然后再读入一个小写字母(s或c),如果读入的字母是s,则计算并输出正方形面积(此时x作为边长);如果读入的字母是c,则计算并输出圆面积(此时x作为半径)。
输入要求
输入一个浮点数和一个小写字母(s或c),假设不会出现其他字母。数字和字母紧挨着输入,中间不要加空格。
输出要求
根据输入的字母为s或c,决定输出正方形面积或是圆面积,保留2位小数。
输入样例
2s
输出样例
4.00
提示
圆周率取3.14。
来源
NBU OJ
#include<stdio.h> //C
#define n x*x
int main(){
double x,s=0;
char a;
scanf("%lf%c",&x,&a);
if(a=='s') printf("%.2f\n",n);
else printf("%.2f\n",3.14*n);
return 0;
}
1219 厘米到英寸的转换
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 2806 | 通过数 : 1749
题目描述
写一个程序来显示厘米到英寸的转换表,表中的最小和最大厘米数是输入值(为整数),表格中给出以10厘米为间隔的转换。1厘米等于0.3937英寸。
输入要求
输入两个整数t1和t2表示表中的最小值和最大值。t2>t1。
输出要求
输出[t1,t2]之间以10厘米为间隔的厘米到英寸的转换表。
输入样例
1 50
输出样例
1 0.39
11 4.33
21 8.27
31 12.20
41 16.14
提示
来源
NBU OJ
#include<stdio.h> //C 法1
int main(){
int n,m,i;
scanf("%d%d",&n,&m);
for(i=n;i<=m;i+=10){
printf("%d %.2f\n",i,0.3937*i);
}
return 0;
}
#include<stdio.h> //C 法2
int main(){
int n,m,i,t=0;
scanf("%d%d",&n,&m);
t=n;
printf("%d %.2f\n",n,n*0.3937);
if(n+10<=m){
for(i=n;i<=m;i++){
t+=10;
if(t>m) break;
printf("%d %.2f\n",t,t*0.3937);
}
}
return 0;
}