此图片里的内容题设 有什么比较好的解决方法不?谢谢大家 希望帮助谢谢!
3条回答 默认 最新
- wanghui0380 2024-06-05 18:18关注
他特别说明不让用数组,表示其实用数组有简单解法。
所以不妨你先用数组想。我先拼接2个123456
123456123456
然后你发现了规律了,就是每次索引+1,从索引处取6个
123456 索引0
234561 索引1
345612 索引2
456123 索引3
561234 索引4
612345 索引5
这是数组解解法
换他题目要求的解法。你可以观察到这是一个周期性的东西。既然如此你可以看成一个周期函数,这个函数周期是6,那么每次索引+1,其实就是相位。
现在补个图:你看一下就明白了
这是信号处理里面5大基础波形的锯齿波,既然是波,如果你移动初始相位,我想你可以理解我要表达什么了的把至于解法,前面专家-赤兔[在线] 已经有解了。你参考那个看。外层循环就是产生相位的,内层循环就是产生周期的
当然我个人评价那个写的麻烦了点 周期长度就是6,直接 j=i to i+6 然后取模 即可。算了还是写个例子好了,实现2种方法都不用数组的(不过我不想开另IDE,所以直接用C#)
下面是C#代码,你要C++的看懂的自己改static void Main(string[] args) { Console.WriteLine("方法一"); make(6); Console.WriteLine("方法二"); make2(6); Console.ReadKey(); return; //正常的波形+相位 void make(int rate) { for (int i = 0; i < rate; i++) { for (int j = 0; j < rate; j++) { var m = (j + i) % rate; Console.Write(m + 1); } if (i < rate -1) Console.Write(Environment.NewLine); } } //如果看成波形和相位,其实还能有另外反推法,用商当相位,这样么一个循环也可 void make2(int rate) { for (int i = 0; i < rate *rate; i++) { var m = i / rate; var n = i + m; var j = n % rate; Console.Write(j+1); if(i%rate==(rate-1)&&i<rate*rate-1) Console.Write(Environment.NewLine); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 AD9910输出波形向上偏移,波谷不为0V
- ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
- ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
- ¥15 抖音直播广场scheme
- ¥15 为什么我明明有这个文件调试器还显示错误?
- ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
- ¥15 如何在arcgis中导出拓扑关系表
- ¥15 处理数据集文本挖掘代码
- ¥15 matlab2017
- ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41