中易网

树的同构问题(树的最小表示法)?

答案:3  悬赏:70  
解决时间 2021-04-27 06:21

哪位大牛帮帮解释一下吗?

网上代码很多,但看不懂,希望哪位能帮下忙,感激不尽!!!!!

最好能附上有解释的代码!~~~~~

谢谢!!

最佳答案

你要用什么语言表示?

全部回答

合肥赛区网络赛的题目吧,今年的题目真恶心,两道同构题,还是最原始的那种,不就是比谁的模板比较强大吗。。

所谓的同构数就是一个数是它的平方的右侧。例如5的平方25,25的平方625,诸如此类,所以5、25都是同构数。比如问1-10000里有多少个同构数。

我给你看两个相对简单好理解的代码~~~

#include <stdio.h> #include <stdlib.h> int Test(int a, int b) { while(a != 0) { if(a%10 != b%10) return 0; a /= 10; b /= 10; } return 1; } void main(void) { int i; for(i = 0; i < 10000; ++i) { if(Test(i, i*i)) printf("%d - %d\n", i, i*i); } system("pause"); }算法原理是 将个位取出来比较 如果不等 那肯定不是 如果相等了 则除以10 那么百位就变成个位了 重复上述步骤 知道小的数位0 那么比较就完成了#include <stdio.h> int check(int org, int sqr) { int tmp, rhs, fac; tmp = org; rhs = 0; fac = 1; while(tmp > 0) { rhs += sqr % 10 * fac; fac *= 10; tmp /= 10; sqr /= 10; } return rhs == org; } int main() { int i, c; for(c = 0, i = 1; i <= 10000; ++i) { if(check(i, i*i)) printf("No.%d %d->%d\n", ++c, i, i*i); } return 0; } 献丑啦~~~你自己先看起吧~~~~
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
"一见青衿幕 误尽平生终不悔 只叹得 竹影声灯
qq飞车下光
合肥学院和金陵科技学院哪个好
兴辉新旧货地址有知道的么?有点事想过去
“对着天空说爱你”和“我们的回忆”哪个好听
谁能给我好看的QQ空间小窝皮肤?
弘昊点贷已放款怎么回事,就是好奇这个贷款。
苹果手机sE在充电时触屏不灵敏,拔了充电器就
帮我做一个“壞”字的图片。
谁知道这套表情叫什么
我才22岁 血压95 170 验血验尿 都正常 还需要
QQ飞车那个宠物最好?
为什么手机里的MP3听不了
阿里巴巴建材地址在哪,我要去那里办事
为什么PowerAura 我改不了图标
推荐资讯
我开了飞车紫钻怎么在飞车里不显示呀
巧去指甲油
手机按键吱吱响怎么回事?
前任结婚了为什么我会不开心。
看下这贴药里哪个中药是止白带的?
我不知道我活着的意义
苹果手机,16G版要几钱啊?
刘谦的家人资料?
昨天我家跳了一下电 后电脑就自动开机显示屏
求,带土字旁的男孩名字,姓宋
求个好玩的游戏~
大话西游问题
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?