时间限制 : 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 //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;
}
时间限制 : 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 //C
int main(){
int n,min,max,a,i,j;
scanf("%d",&n);
for(i=0;i=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;
}
时间限制 : 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 //C
int main(){
int a,x,i,s=0;
scanf("%d",&a);
for(i=0;i<5;i++){
scanf("%d",&x);
if(x
时间限制 : 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 //C
int main(){
int a,b,i,s=0,sum=0;
scanf("%d%d",&a,&b);
for(i=1;i
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 12480 | 通过数 : 5798
打印出一个由符号“*”组成的菱形图案。
输入一个整数n(奇数), 表示菱形的行数。
菱形用字符 * 表示,每行都没有后缀的空格。
5
*
***
*****
***
*
NBU OJ
#include //C
int main(){
int n,i,j,x;
scanf("%d",&n);
x=(n+1)/2;
for(i=0;i=1;j--) printf("*");
printf("\n");
}
return 0;
}
时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)
提交数 : 11899 | 通过数 : 5314
小神探CoCo在某次案件调查中需要研究一些地图,但是其中一些地图使用公里为单位,而另一些使用英里为单位。假设CoCo希望全部采用公里计量,你可以帮她写出转换程序吗?已知1英里等于1.609公里。
输入以英里表示的距离。
输出以公里表示的距离,结果保留两位小数。
10
16.09
NBU OJ
#include //C
int main(){
double x;
scanf("%lf",&x);
printf("%.2f\n",1.609*x);
return 0;
}
时间限制 : 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 //C
int main(){
double t;
scanf("%lf",&t);
printf("%.2f\n",4*t*t/(t+2)-20);
return 0;
}
时间限制 : 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 //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;
}
时间限制 : 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 //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;
}
时间限制 : 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 //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 //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;
}