C#写个小算法,求帮忙。

寂小魔 2012-09-04 05:27:33
原始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
...全文
269 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
风吹腚腚凉 2012-09-05
  • 打赏
  • 举报
回复
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;
}
给楼主个建议
Point pt = new Point();

for (int i = 0; i < int.Parse(tbNumber.Text); i++ )
{
int k1 = i / 10 ;
int k2 = i % 10;
pt.X = 16 + k2 * 93;
pt.Y = 20 + k1 * 36;
}
寂小魔 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

for (int i = 0; i < int.Parse(tbNumber.Text); i++ )
{
Point pt = new Point();
int k1 = i / 10 ;
int k2 = i % 10;
pt.X ……
[/Quote]
亲测 可用,谢谢 结贴。
  • 打赏
  • 举报
回复
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 等等省略。。。。该怎么写才好。
}
风吹腚腚凉 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]
引用 16 楼 的回复:

引用 12 楼 的回复:
C# code


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

f……

哥哥明显你写错了。。。


那是我理……
[/Quote]
哦呵呵,我也写错了
全栈极简 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

引用 12 楼 的回复:
C# code


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

f……

哥哥明显你写错了。。。
[/Quote]

那是我理解错了,没细看,拿到手就贴了,呵呵。
风吹腚腚凉 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
C# code


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

f……
[/Quote]
哥哥明显你写错了。。。
风吹腚腚凉 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
顶楼上,我也想的也是这种算法
[/Quote]
那你悲剧了,你的想法也是错的。
风吹腚腚凉 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
C# code


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

f……
[/Quote]
哈哈你也错了
sam190 2012-09-05
  • 打赏
  • 举报
回复
顶楼上,我也想的也是这种算法
全栈极简 2012-09-05
  • 打赏
  • 举报
回复

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);
}
}
风吹腚腚凉 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
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;
}
[/Quote]
、、、这个是对的,我的写错了哈哈哈,上班中
帅师傅 2012-09-05
  • 打赏
  • 举报
回复
不知是否符合楼主的意思?
风吹腚腚凉 2012-09-05
  • 打赏
  • 举报
回复
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;

}
}
不对自己改吧但是我的思路没错
帅师傅 2012-09-05
  • 打赏
  • 举报
回复
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;
}
风吹腚腚凉 2012-09-05
  • 打赏
  • 举报
回复
貌似很简单,不过我的算法不是很好,就不发出来了。。呵呵
寂小魔 2012-09-05
  • 打赏
  • 举报
回复

/* 求代码
* i<10 时 x = 16 + i * 93 , y = 20
* i<20 时 x = 16 + (i-10) * 93 , y = 20 + 36
* i<30 时 x = 16 + (i-20) * 93 , y = 20 + 36 + 36
* i<40 时 x = 16 + (i-30) * 93 , y = 20 + 36 + 36 + 36
* 以此类推
*/
for (int i = 0; i < int.Parse(tbNumber.Text); i++)
{
//位置循环改变 x 93 递增 y 36递增
Point pt = new Point();
if (i < 10)
{
pt.X = 16 + i * 93;
pt.Y = 20;
}
else if (i < 20)
{
pt.X = 16 + (i - 10) * 93;
pt.Y = 20 + 36;
}
else if (i < 30)
{
pt.X = 16 + (i - 20) * 93;
pt.Y = 16 + 36 + 36;
}
else if (i < 40)
{
pt.X = 16 + (i - 30) * 93;
pt.Y = 16 + 36 + 36 + 36;
}
// i<50 i<60 等等省略。。。。该怎么写才好。
}
寂小魔 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

不知道楼主是想干什么。
如果楼主想计算当X起始为16,每次递增93,最大为853时,X有多少个点,Y有多少个点。
我可以给出楼主如下算法:
public static int Method()
{
int x = 16, y = 20;//x,y起始值
int count = 1;//计数
……
[/Quote]

i<10 时 x = 16 + i * 93 , y = 20
i<20 时 x = 16 + (i-10) * 93 , y = 20 + 36
i<30 时 x = 16 + (i-20) * 93 , y = 20 + 36 + 36
i<40 时 x = 16 + (i-30) * 93 , y = 20 + 36 + 36 + 36
依次类推、
求用C#代码如何表达
SuperHero乐成 2012-09-04
  • 打赏
  • 举报
回复
不知道楼主是想干什么。
如果楼主想计算当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有多少个点。
}
不知道帮到楼主了没。
要是帮到了,就把分给我哦,没分了。
寂小魔 2012-09-04
  • 打赏
  • 举报
回复
居然没人。
寂小魔 2012-09-04
  • 打赏
  • 举报
回复
总共多少个点由参数控制。
求多种方式实现

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧