枚举
条件:数据量较小
模拟
图形排版
题解:文章来源地址https://www.toymoban.com/news/detail-814841.html文章来源:https://www.toymoban.com/news/detail-814841.html
- 找规律
- 先构造,后输出。利用一个缓存数组来表示将要输出的字符阵列,然后在该数组上按照自己的需要完成排版,最后再输出图形。
日期问题
题解:
- 预处理:再真正开始处理输入数据之前,预处理出所有月份的天数并保存。
- 闰年:有29天,普通年分的2月只有28天。
- 都可以转化为用
该日期是今年的第几天?+第几天的日期是什么(两个逆运算)
来解决问题。
//判断平年还是闰年
bool IsLeapYear(int year){
return (year%4==0 && year%100!=0)||(year%400==0);
}
//平年闰年天数
int NumberOfYear(int year){
if(IsLeapYear(year)){
return 366;
}
else{
return 365;
}
}
判断日期是否合法
int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int year,int month,int day)
{
if(month==0||month>12) return false;
if(day==0) return false;
if(month!=2)
{
if(day>days[month]) return false;
}
else
{
int flag = (year%100&&year%4==0||year%400==0); //能被4整除,不能被100整除,能被400整除
if(day>28+flag) return false; //闰年的2月有29天
}
return true;
}
今年的第几天?
int main(){
int year,month,day;
while(cin>>year>>month>>day){
int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int flag = 0;
int sumDays = 0;
if(year%4==0&&year%100||year%400==0) flag = 1;
if(flag == 1) days[2]+=1;
for(int i=1;i<month;i++){
sumDays+=days[i];
}
sumDays+=day;
cout<<sumDays<<endl;
}
return 0;
}
进制转换
P进制数x,转换为10进制数y
int y = 0, product = 1;
while(x){
y+=(x%10)*product;
x/=10;
product*=p;
}
10进制数y,转换为Q进制数z
int z[40], num = 0;
do{
z[num++] = y%Q;
y/=Q;
}while(y); //z数组从高位z[num-1]到低位z[0]即为Q进制z
到了这里,关于【考研复试上机】Ch1 暴力求解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!