写作绅士,读作丧尸 X岛揭示板
顺猴者昌 逆猴者亡 首页版规 |用户系统 |移动客户端下载 | 丧尸路标 | | 常用图串及路标 | 请关注 官方公众号:【X岛揭示板】 官方微博: 【@X岛极速版】| 人,是会思考的芦苇
常用串:·豆知识·跑团板聊天室·公告汇总串·X岛路标

No.58479561 - 无标题 - 技术宅


回应模式
No.58479561
名 称
E-mail
标题
颜文字
正文
附加图片
•程序语言、压制投稿、视频制作以及各计算机领域的技术问题
•我觉得还是CSDN靠谱一点
•本版发文间隔为15秒。

收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2023-07-06(四)23:31:03 ID:ZrBb6QD [举报] [订阅] [只看PO] No.58479561 [回应] 管理
>>No.58478055
原串:每个汉字代表一个数字,相同汉字代表相同数字,那么:喜欢数学课×12=数学课我喜欢。请计算一下:数+学+课=?
我写了40+行代码,代码串内。有没有什么短点的写法...
Tips 无名氏 2099-01-01 00:00:01 ID:Tips超级公民 [举报] No.9999999 管理
♡性♡感♡红♡名♡在♡线♡要♡饭♡
(〃∀〃) https://afdian.com/a/nmbxd
无标题 无名氏 2023-07-06(四)23:31:18 ID:ZrBb6QD (PO主) [举报] No.58479569 管理
for (int i=10000;i<=99999;i++)
{
int a=i/10000;
int b=i/1000-10*a;
int c=i/100-100*a-10*b;
int d=i/10-1000*a-100*b-10*c;
int e=i-10000*a-1000*b-100*c-10*d;
//把每一位取出来
int f=12*i;//计算12*喜欢数学课
int g0=100000*c+10000*d+1000*e+10*a+b;
int g1=100000*c+10000*d+1000*e+100+10*a+b;
int g2=100000*c+10000*d+1000*e+200+10*a+b;
int g3=100000*c+10000*d+1000*e+300+10*a+b;
int g4=100000*c+10000*d+1000*e+400+10*a+b;
int g5=100000*c+10000*d+1000*e+500+10*a+b;
int g6=100000*c+10000*d+1000*e+600+10*a+b;
int g7=100000*c+10000*d+1000*e+700+10*a+b;
int g8=100000*c+10000*d+1000*e+800+10*a+b;
int g9=100000*c+10000*d+1000*e+900+10*a+b;
//计算“数学课我喜欢”,我是任意值,所以有十种情况。
if (f==g0)
cout<<i,printf("\n"),cout<<g0,printf("\n");
else if (f==g1)
cout<<i,printf("\n"),cout<<g1,printf("\n");
else if (f==g2)
cout<<i,printf("\n"),cout<<g2,printf("\n");
else if (f==g3)
cout<<i,printf("\n"),cout<<g3,printf("\n");
else if (f==g4)
cout<<i,printf("\n"),cout<<g4,printf("\n");
else if (f==g5)
cout<<i,printf("\n"),cout<<g5,printf("\n");
else if (f==g6)
cout<<i,printf("\n"),cout<<g6,printf("\n");
else if (f==g7)
cout<<i,printf("\n"),cout<<g7,printf("\n");
else if (f==g8)
cout<<i,printf("\n"),cout<<g8,printf("\n");
else if (f==g9)
cout<<i,printf("\n"),cout<<g9,printf("\n");
}
无标题 无名氏 2023-07-06(四)23:32:37 ID:ZrBb6QD (PO主) [举报] No.58479595 管理
虽然写得长,至少孩子的思路很清晰|∀` )
无标题 无名氏 2023-07-06(四)23:35:26 ID:lUGjoEa [举报] No.58479662 管理
原串好歹找规律,你是真的穷举法( ゚∀。)
你把原串的找规律改成代码就行了
无标题 无名氏 2023-07-06(四)23:37:04 ID:ZrBb6QD (PO主) [举报] No.58479700 管理
>>No.58479662
( ・_ゝ・)7…我好像只会穷举
无标题 无名氏 2023-07-06(四)23:41:04 ID:ZrBb6QD (PO主) [举报] No.58479784 管理
算了,能跑就行,与自己和解( ˇωˇ)入
没关系,写出来能跑的代码并且跑出结果就已经很厉害了。゚ ∀゚)ノ( ;´д`)
无标题 无名氏 2023-07-06(四)23:48:28 ID:vcuA7Ye [举报] No.58479957 管理
>>No.58479784
我也觉得,因为我只会用纸穷举( ゚∀。)
无标题 无名氏 2023-07-07(五)01:28:46 ID:MNVc58g [举报] No.58481677 管理
我不知道了,反正第一时间的想法是做个栈写个递归
无标题 无名氏 2023-07-07(五)01:34:28 ID:YloHKCX [举报] No.58481730 管理
你把重复的代码变成循环就已经可以简洁很多了。穷举没问题,反正问题很小,从工程的监督来讲,你这只是用少量的计算机运算时间去换工程师的大量写代码时间而已,还挺值的。

除非你的程序要跑很久,那你就可以着手去优化它了
无标题 无名氏 2023-07-07(五)01:34:48 ID:YloHKCX [举报] No.58481737 管理
>>No.58481730
从工程的角度讲
无标题 无名氏 2023-07-07(五)02:05:27 ID:qvo7Fxf [举报] No.58481971 管理
你这……没必要全部穷举。另外要先抽象出来已经有的规律。我参考原串里面给的规则写了一下,js的伪代码,理解意思就行,跑是跑不了的。

>>No.58478995
①数 > 喜
②喜x2 +欢 > 10
③欢必是偶数 (欢 = 课x2的个位数部分)
无标题 无名氏 2023-07-07(五)02:11:31 ID:qvo7Fxf [举报] No.58482005 管理
for (var i = 10000; i < 99999; i++) {
 var abcde = i的万千百十个
  //abcde喜欢数学课
 if (b % 2 != 0) {continue}
  //对应③,欢是奇数直接跳过
 if (c <= a) {continue} //不符合①,直接跳过
 if (a*2+b <= 10) {continue} //不符合②,直接跳过
 
 var b = i * 12 //直接乘12得到“数学课我喜欢”
 var UVWXYZ = b的十万/万千百十个
  //UVWXYZ数学课我喜欢
 if (UVW != cde) {continue} //两个“数学课”不对应跳过
 if (YZ != ab) {continue} //两个“喜欢”不对应跳过
 
 print(i, i*12, (c+d+e))
 //输出:喜欢数学课,数学课我喜欢,数+学+课
}
无标题 无名氏 2023-07-07(五)02:16:47 ID:BKi1gyx [举报] No.58482043 管理
cout<<923076<<endl
无标题 无名氏 2023-07-07(五)02:20:31 ID:qvo7Fxf [举报] No.58482071 管理
你后半部分代码是完全没必要的,已知“喜欢数学课×12=数学课我喜欢”,就完全不用管“我”到底是多少。

直接把“喜欢数学课”乘12,然后看“喜”“欢”“数”“学”“课”这几个字前后能不能对应就行了,全部能对应就说明是答案,对应不上就直接跳过,试下一个数,节省时间。
无标题 无名氏 2023-07-07(五)02:38:11 ID:TmD3NuF [举报] No.58482192 管理
(´゚Д゚`)bbb
无标题 无名氏 2023-07-07(五)07:33:55 ID:7Bq5MX0 [举报] No.58483012 管理
>>No.58482043
无标题 无名氏 2023-07-07(五)08:46:45 ID:ZrBb6QD (PO主) [举报] No.58483579 管理
>>No.58482071
谢谢肥哥,还好只有一个是任意数,只写了10遍,20行就可以了,万一是俩我得写200行|∀゚

UP主: