日期:2014-05-17  浏览次数:20924 次

C#写个小算法,求帮忙。
原始point(16,20) X递增93,Y递增36 X最大为853,也就是10个点 Y不确定有多少个点。
效果这样
 o o o o o o o o o o
 o o o o o o o o o o
 o o o o o o o o o o

------解决方案--------------------
不知道楼主是想干什么。
如果楼主想计算当X起始为16,每次递增93,最大为853时,X有多少个点,Y有多少个点。
我可以给出楼主如下算法:
public static int Method()
{
int x = 16, y = 20;//x,y起始值
int count = 1;//计数
while (x < 853)//循环,当x大于853的时候就停止
{
//如果楼主需要用x和y点进行绘点,可以在此处调用绘点的方法,把x,y传进去。
x += 93;//x递增
y += 36;//y递增
count++;//计数递增
}
return count;//返回递增,得到当x最大为853时,X有多少个点,Y有多少个点。
}
不知道帮到楼主了没。
要是帮到了,就把分给我哦,没分了。
------解决方案--------------------
貌似很简单,不过我的算法不是很好,就不发出来了。。呵呵
------解决方案--------------------
for (int i = 0; i < int.Parse(tbNumber.Text); i++ )
{
Point pt = new Point();
int k1 = i / 10 ;
int k2 = i % 10;
pt.X = 16 + k2 * 93;
pt.Y = 20 + k1 * 36;
}
------解决方案--------------------
int txtnum = 109;
int num = txtnum / 10;
MessageBox.Show(a+"");
for (int i = 0; i < txtnum; i++)
{
for (int j = 0; j < num; j++)
{
//位置循环改变 x 93 递增 y 36递增
Point pt = new Point();
pt.X = 16 + (i-j*10 )* 93;
pt.Y = 20+j*36;

}
}
不对自己改吧但是我的思路没错
------解决方案--------------------
C# code

 class Program
    {
        static void Main(string[] args)
        {
            Point point = new Point();//定义一个Point类
            int step = 10;//定义幅度为10,input参数

            for (int i = 0; i < step; i++)
            {
                point.X = Convert.ToString(16 + i * 93);//X属性赋值
                point.Y = Convert.ToString(20 + 36 * i);//Y属性赋值
            }

            Console.WriteLine(point.X + "\r\n" + point.Y);
        }
    }

------解决方案--------------------
for (int i = 0; i < int.Parse(tbNumber.Text); i++)
{
//位置循环改变 x 93 递增 y 36递增
Point pt = new Point();
pt.X = 16 + (i - 10 / 10 * 10) * 93;
if (i < 10)
{
pt.Y = 20;
}
else if (i < 20)
{
pt.Y = 20 + 36;
}
else
{
pt.Y = 16 +i/10* 36;
}
// i<50 i<60 等等省略。。。。该怎么写才好。
}