0
点赞
收藏
分享

微信扫一扫

欧拉计划 problem 349 兰顿蚂蚁 飞神的蚂蚁


​​https://pe-cn.github.io/349/​​

欧拉计划 problem 349 兰顿蚂蚁 飞神的蚂蚁_ios

百度百科

欧拉计划 problem 349 兰顿蚂蚁 飞神的蚂蚁_兰顿蚂蚁_02

先进行模拟 得到20000之后的一步对应多少黑,找到合适的位置,可以通过加104到达1e18

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
int fang = 0;
const int N = 10000;
int i=5000,j=5000;
int counter=0;
long long int k = 0;
int **a = new int* [N];
for(int i=0;i<N;i++){
a[i] = new int[N];
}
while(i< N && j< N && i>=0 && j>=0){
//printf("%d %d\n",i,j);
//printf("%d \n",a[i][j]);
//printf("fang %d \n",fang);
k++;
if(a[i][j]%2==0){

a[i][j]++;
if(fang==0){
j++;

}else if(fang ==1){
i++;
}else if(fang ==2){
j--;
}else if(fang ==3){
i--;
}
counter++;
//printf("+1");
fang++;
fang %=4;
}else{

a[i][j]++;
if(fang==0){
j--;
}else if(fang ==1){
i--;
}else if(fang ==2){
j++;
}else if(fang ==3){
i++;
}
counter--;
//printf("-1");
fang--;
fang =(fang+4)%4;
}
//if( k >= 20007){
cout<<k<<" "<<counter<<endl;

// }
}

return 0;
}

欧拉计划 problem 349 兰顿蚂蚁 飞神的蚂蚁_模拟_03

之后的规律就是 每隔104步增长12块黑,可以用计算器得到答案,直接输出就行

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
cout<<"115384615384614953"<<endl;
return 0;
}


举报

相关推荐

0 条评论