一级要能够利用程序解决比较简单的问题:
语法要掌握输入输出(如小数)、基本数据类型(如int/double/char/bool)、变量定义和使用、选择结构、数学运算(如模运算)、关系运算和逻辑运算、分支结构、循环结构、简单的嵌套循环的使用。
要掌握简单的程序技巧如:打擂台求最值、利用模运算拆数、重新合并数字、整除判断、简单的穷举(枚举)、试除法。
特别注意:全局变量和局部变量的初始化特点不同。
1、输出a÷b×c的值
依次输入数字a、b、c,数字之间以空格分隔,将a➗b✖c计算结果保留6位小数输出。
#include<iostream>//输入输出流
#include<iomanip>//输出格式化
using namespace std;
int main(){
double a,b,c;//结果需要小数,将变量定义为double类型
cin>>a>>b>>c;
cout<<setprecision(6)<<fixed<<a/b*c<<endl;//小数格式
}
上述的小数格式输出也可以使用:printf(“%.6lf”,a/b*c);
2、字符判断
输入一个字符,如果该字符是大、小写字母或者数字,输出YES, 否则输出NO。
#include<iostream>
using namespace std;
int main(){
char n; //输入一个字符,变量定义时,注意数据类型要准确
cin>>n;
//与&& 或|| 的使用,与的优先级更高,可省略与的括号
if((n>='A'&& n<='Z') || (n>='a'&&n<='z') || (n>='0'&&n<='9')){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
return 0;
}
掌握字符类型的使用,大写字母、小写字母、数字字符的使用。
3、统计数的个数
给定一个数字的序列S,以及一个区间【L, R】,求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个数。
#include<iostream>
using namespace std;
int main(){
int n,L,R,tot=0;//tot是计数变量,初始化为0
cin>>n>>L>>R;
for(int i=1;i<=n;i++){//循环输入x,对每个x进行判断
int x;
cin>>x;
if(x>=L&&x<=R){//对于区间[L, R]之间的数字,进行计数
tot++;
}
}
cout<<tot<<endl;
return 0;
}
4、数1的个数
给定一个十进制正整数n(1≤n≤10000),写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。 例如当n=2时,写下1,2。这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5个“1”。
#include<iostream>
using namespace std;
int main (){
int n,t=0;
cin>>n;
for(int i=1;i<=n;i++){//看每个i里面有几个1,累加
int x=i;//不能直接去 处理i ,用x
while(x>0){//这一段代码,循环处理x的每一位
if(x%10==1) t++; //取得x的个位,并进行判断
x/=10; //抹掉x的个位
}
}
cout<<t<<endl;
return 0;
}
5、苹果和虫子
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
#include<iostream>
using namespace std;
int n,x,y,c;//c表示已经吃了多少个
int main(){
cin>>n>>x>>y;
if(y%x==0) c=y/x;//正好吃了整数c个
else c=y/x+1;//如果不是吃整数个,那就多算1个(被啃烂了)
if(c>n){//吃掉的比总数n还多,但结果不能为负数,输出0
cout<<0;
}else{ //否则,剩下的苹果数量是 n-c
cout<<n-c;
}
return 0;
}
