oj 判断数值
#include<stdio.h>
int main(){
int x,y;
scanf("%d",&x);
y=(x>0)?1:((x=0)?0:-1);
printf("%d",y);
}
为何x=0时y不等于0?
因为三目运算符里应该是用x==0
oj
已知一个数列的前三项分别为0,0,1,以后的每项都是其相邻的前三项之和,计算并输出该数列前n项(n<30)之和sum,
例如:当n=10时,程序的输出结果应该为:96
#include<stdio.h>
int main(){
int i,n,sum=1;
int n1=0,n2=0,n3=1,n4=1;
scanf("%d",&n);
for(i=1;i<n-2;i++){
n1=n2;
n2=n3;
n3=n4;
n4=n1+n2+n3;
sum+=n3;
}
printf("%d",sum);
}
解题的方法和水仙花数很相似,就是依次替换,注意的是sum加的是n3不是n4
oj 百马百担问题
有一百匹马,驮一百担货,大马驮三担,中马驮两担,两匹小马共驮一担,问大、中、小马各多少匹?请编程输出所有可能的组合。
#include<stdio.h>
int main(){
int a,b,c;
for(a=0;a<=33;a++){ //注意是从a=0开始
for(b=0;b<=(100-3*a)/2;b++){ //注意是从b=0开始
c=(100-3*a-2*b)*2; //题目是两匹马担一担
if(a+b+c==100){
printf("%d %d %d\n",a,b,c);
}
}
}
}
scanf("%d ")和scanf("%d")的区别:前者可以有空格,后者遇到空格就会将数据存入该变量中