网易_输入坐标输出值

2、如图:
7 8 9 10
6 1 2 11
5 4 3 12
16 15 14 13
设“1”的坐标为(0,0) “7”的坐标为(-1,-1) 编写一个小程序,使程序做到输入坐标(X,Y)之后显示出相应的数字。

方法一、先求出需要拐弯的次数times以及最后一次拐弯后还需要走的步数dif。然后在主函数里计算最终的坐标位置。这种解法与题设不符合。不过写的挺好。

#include<iostream>
using namespace std;

enum X{RIGHT = 1, DOWN = 1, LEFT = -1, UP = -1};

void get_attribution(int in_num, int &dif, int &times)
{
int i = 0;
in_num--;
while(in_num >= 0)
{
in_num = in_num - (i/2+1);
times = i;
i++;
if(in_num >= 0)
dif = in_num;
}
}

void main()
{
int a = 7;
int dif = 0,times = 0;
get_attribution(a, dif, times);

int x = 0, y = 0;
for(int i = 1; i <= times; i++)
{
switch(i%4)
{
case 0:
y += UP * ((i-1)/2+1); break;
case 1:
x += RIGHT *((i-1)/2+1); break;
case 2:
y += DOWN*((i-1)/2+1); break;
case 3:
x += LEFT*((i-1)/2+1); break;

}
}

switch (times%4)
{
case 3:
y += UP * dif; break;
case 0:
x += RIGHT * dif; break;
case 1:
y += DOWN * dif; break;
case 2:
x += LEFT * dif; break;
}

cout<<x<<" "<<y<<endl;
}

方法二、求出内层正方形的大小,然后计算外围的偏移量,最终的结果即为两者相加。

#include <iostream>

#include <conio.h>

#include <math.h>

using namespace std;

int newVal(int x, int y)

{

//以结点1为原点

//以相邻两结点间的距离为单位(如结点2与结点3的之间线段)

//结点7所在的正方形(由结点2、3、4、5、6、7、8、9构成)的边长

//的一半为1,即结点7到原点1的最大投影距离为1。

//于是由结点坐标,可以求出此结点所在的正方形的投影距离:

int r = max(abs(x),abs(y));

//进行坐标变换,即把坐标原点移动到正方形的一个角结点上,

//使整个正方形落在第一象限,例如,当r=1时,将把坐标原点从结点1

//移动到结点7。

x += r;

y += r;

//正方形的边长,等于投影距离的两倍

int d = 2*r;

int s;    //s为结点在自己的正方形的偏移量

if (y == 0)

s = 3*d + x;

else if (x == 0)

s = 2*d + (d-y);

else if (y == d)

s = d + (d-x);

else

s = y;

//pow((r+1),2)为内层的结点数。

//例如,结点10的内层由结点1和正方形A(2、3、4、5、7、8、10)构成

//这些内层的总结点数恰为:(正方形A的边长+1)的平方,

//因为:正方形A的边长 =(结点10所在正方形的半径-1)*2

//故:内层结点数 = (结点10所在正方形的边长-1)的平方

//结点值 = 在当前正方形的偏移量 + 内层的结点数

s += pow((d-1),2);

return s;

}

int main(int argc,char * argv[])

{

int x, y;

cout <<"请输入坐标(x y):";

while (cin>>x>>y)

{

cout <<"坐标所在的结点值为:"<<f(x, y)<<endl;

cout <<"请输入坐标(x y):";

}

return 0;

}

时间: 2024-10-23 22:14:08

网易_输入坐标输出值的相关文章

输入坐标和输出坐标——图片框上动态加载按钮及响应事件

在实际的项目中总会遇到一些需要动态加载一些控件,并且加载控件的响应事件的代码.现在写一个简单的例子,主要说一下里面的一些关键点:使用鼠标在窗体上的图片框中动态的添加按钮 .动态的去加载事件,肯定是需要使用对象类动态的生成,动态事件,必须要使用委托去实现.还有一个就是"动态"的实现过程,打算鼠标点下去,在鼠标单击的位置添加上按钮. 环境:Visual Studio 2010, .Net FrameWork 3.5 private void pictureBox1_MouseDown(ob

C++ Primer笔记10_运算符重载_赋值运算符_输入/输出运算符

我们致力于推广Scriptcase,以产品销售.技术支持.培训服务.外包开发为核心,将Scriptcase这一简单易用的工具真正在国内予以推广.我们搭建了Scriptcase的示例网站,通过该网站可以看到在几乎不需要任何编程的情况下,Scriptcase可以做到如何快速和先进的开发. 敬请访问 www.phpscriptcase.com C++ Primer笔记10_运算符重载_赋值运算符_输入/输出运算符

【c语言】有一函数:x &lt; 0 ,y = -1;x = 0,y = 0;x &gt; 0,y = 1,编程输入一个x值,要求输出对应的y

// 有一函数:x < 0 ,y = -1;x = 0,y = 0;x > 0,y = 1,编程输入一个x值,要求输出对应的y #include <stdio.h> int main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x > 0) y = 1; else if(x < 0) y = -1; else y = 0; printf("对应的y值是:%d\

loadrunner 日志中 输入参数化的值

1.脚本中对用户名进行参数化后:如下(我的参数化文件中有三个值) web_submit_data("authentication", "Action=http://www.moojnn.com/mojingcsp/authentication", "Method=POST", "TargetFrame=", "RecContentType=application/json", "Referer=h

Python(输入、输出;简单运算符;流程控制)

一 输入输出 python3中统一都是input,python2中有raw_input等同于python3的input,另外python2中也有input 1.res=input("python3: ") 2.res=raw_input("python2: ") 3.res=raw_input("python2: ") 1,2无论接收何种输入,都被存为字符串赋值给res,而3的意思是,用户输入何种类型,就以何种类型赋值给res #!/usr/bi

Haskell 输入和输出

我们已经说明了 Haskell 是一个纯粹函数式语言.虽说在命令式语言中我们习惯给电脑执行一连串指令,在函数式语言中我们是用定义东西的方式进行.在 Haskell 中,一个函数不能改变状态,像是改变一个变量的内容.(当一个函数会改变状态,我们说这函数是有副作用的.)在 Haskell 中函数唯一可以做的事是根据我们给定的参数来算出结果.如果我们用同样的参数调用两次同一个函数,它会回传相同的结果.尽管这从命令式语言的角度来看是蛮大的限制,我们已经看过它可以达成多么酷的效果.在一个命令式语言中,编程

Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化

Python入门(二)--IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化 我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说那么的被动,我学习的是Python2.7,虽然现在随着版本的迁移至Python3,但是这个并不会对我们造成什么困扰,毕竟只是一个适应阶段 我们的学习资料:廖雪峰官方网站Python2.7教程 一.IDE选择PyCharm 我们虽然在前面一章已经配置过,但是我们还是有很多的IDE可以开发Py,比如su

第九章: 输入与输出

@font-face{ font-family:"Times New Roman"; } @font-face{ font-family:"宋体"; } @font-face{ font-family:"Arial"; } @font-face{ font-family:"黑体"; } @font-face{ font-family:"微软雅黑"; } p.MsoNormal{ mso-style-name

调用 get(fgetc) 和 putc(fputc) 函数进行输入、输出

当成功地打开文件后,接下来的事情就是对文件进行输入或输出操作,最简单的是调用 getc(或 fgetc) 和 putc(或 fputc) 函数进行字符的输入和输出. 1.调用 putc(或 fpuct) 函数输出一个字符 putc 函数的调用形式如下: putc(ch, fp); 这里 ch 是待输出的某个字符,它可以是一个字符常量,也可以是一个字符变量:fp 是文件指针.putc(ch, fp) 的功能是将字符 ch 写到文件指针 fp 所指的文件中去.如果输出成功,putc 函数返回所输出的