博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TZOJ 4764: 正方形
阅读量:6932 次
发布时间:2019-06-27

本文共 947 字,大约阅读时间需要 3 分钟。

题目描述

给定一个n×n的正方形,现在你在正方形的左下角,每次你可以顺时针走n+1单元的距离,求多少次之后你可以回到起点。

例如有如下正方形,边长n=4。

从左下角出发,标记为1,然后顺时针走n+1=5个单位走到2位置,最终走17次再次回到起点。

 

 输入

多组数据,每一行为一组数据

每一行一个整数n,代表正方形的边长(1 <= n <= 10^9)。

输出

每组输出最少需要的次数。

样例输入

4

8
100

样例输出

17

33

401

 

PS:此题,就是找规律,如果用模拟的话,超时,绝对超时。

规律:("->"代表输出)

情况一:偶数              情况二:奇数

2->9                         ①  1->2      ② 3->3

4->17                            5->10          7->7

6->25                            9->18         11->11

8->33

 

偶数 n%2==0:4*n+1

奇数  ((n-1)/2)%2==0 : n*2+1

         ((n-1)/2)%2==1: n+1

千万别忘记+1,起始点也要加上去(die在这里,自己没看清题目,枯了)

 

 

以下为模拟,超时超时超时    

#include
using namespace std;int main(){ __int64 n; while(cin>>n) { __int64 s=1,flag=0; while(1) { s+=(n+1); if(s>4*n)s%=(4*n);flag++; if(s==1) break; } flag=flag+1;//原点要加上去 cout<<"* "<
<

 

AC代码:

#include
using namespace std;int main(){ __int64 n ; while(cin>>n) { if(n%2==0) cout<

 

转载于:https://www.cnblogs.com/lenka-lyw/p/10908991.html

你可能感兴趣的文章
第1章 游戏之乐——高效率地安排见面会
查看>>
PHP 错误与异常 笔记与总结(13 )自定义异常类
查看>>
Java知多少(完结篇)
查看>>
MFC带标题栏的窗口和不带标题栏的窗口最大化
查看>>
Android有关JNI 学习(两)为JNI方法名称,数据类型和方法签名的一些知识
查看>>
jQuery使用FormData上传文件
查看>>
关于近段时间论坛型APP 的一段舍弃
查看>>
codeforces Gym 100500 J. Bye Bye Russia
查看>>
定制Eclipse IDE之功能篇(二)
查看>>
ajax j跨域请求sonp
查看>>
Ant配置
查看>>
STM32 GPIO 配置之ODR, BSRR, BRR 详解
查看>>
Android的回调
查看>>
告诉一个远程团队协作的故事
查看>>
ecshop调用后台指定广告位下所有广告循环
查看>>
【C++】虚函数
查看>>
如何使用 iOS 7 的 AVSpeechSynthesizer 国家有声读物(4)
查看>>
UITabBarControler解决旋转问题
查看>>
sublime text2安装package control的方法
查看>>
第五蓝桥杯 蚂蚁冷
查看>>