p5743
再给童鞋讲题的时候无意中发现了个规律,感觉有点用?
#include<iostream>
using namespace std;
int main() {
int day,num = 1;
cin>>day;
while(day>1){
num += 1;
num *= 2;
day--;
cout<<num<<endl;
}
return 0;
}
1 | 4 | 10 | 22 | 46 | 94 | 190 | 382 | 766 | 1534 |
---|---|---|---|---|---|---|---|---|---|
然后去求 |
3 | 6 | 12 | 24 | 48 | 96 | 192 | 384 | 768 | 1536 |
---|
3 | 6 | 12 | 24 | 48 |
---|---|---|---|---|
3 | 6 | 12 | 24 | |
3 | 6 | 12 | ||
3 | 6 | |||
3 |
不知道有没有感觉有点熟悉的样子?
p1[i - 1][j] = 2 * (p1[i][j]);
p1[i - 1][j-1] = p1[i][j];
有杨辉三角的模样了有木有?
#include<iostream>
#include<string.h>
using namespace std;
int main(){
int day;
cin>>day; //天数
int p1[day][day];
memset(p1,0,sizeof(p1)); //初始化
day -= 1; //数组从0开始
p1[day][day] = 3; //最底层的3
for(int i = day;i >= 0;i--){
for(int j = day;j >= i;j--){
p1[i - 1][j] = 2 * (p1[i][j]);
p1[i - 1][j-1] = p1[i][j];
}
}
for(int i = 0;i <= day;i++){
cout<<p1[0][i]<<endl; //打印出来
}
return 0;
}
输出结果:
3 | 6 | 12 | 24 | 48 | 96 | 192 | 384 | 768 | 1536 |
---|
和第一遍求得式子是不是一样?
从第二项开始,给每一个值减二就是初始值了
#include<iostream>
#include<string.h>
using namespace std;
int main(){
int day;
cin>>day; //天数
int p1[day][day];
memset(p1,0,sizeof(p1)); //初始化
day -= 1; //数组从0开始
p1[day][day] = 3; //最底层的3
for(int i = day;i >= 0;i--){
for(int j = day;j >= i;j--){
p1[i - 1][j] = 2 * (p1[i][j]);
p1[i - 1][j-1] = p1[i][j];
}
}
cout<<"1"<<endl; // 剩的一个
for(int i = 1;i <= day;i++){
cout<<p1[0][i] - 2<<endl; //打印出来
}
return 0;
}
最后,就酱紫啦,上一次就打到这里,没保存!!!蒟蒻哭死!!!QAQ
还望犇犇们指教,优化代码或者指出蒟蒻不足之处,谢谢QWQ