Re: [闲谈] 中华电信资讯系统开发及维运 问答题

楼主: chses910372 (loveseeker)   2020-08-09 18:10:57
※ 引述《THLu (生活需要更精彩!)》之铭言:
: 只记得大概题目内容,有错再请留言更正~
: 谢谢!
: 资讯系统开发及维运
: 问答题:
: 第一题
: (一)请说明人工智能、机器学习、深度学习之间的关系。(6分)
: (二)请说明区块链技术的不可窜改性原理。(6分)
: (三)请说明何谓边缘运算。
: 第二题 请参考以下F函数范例
: int F(int number){
: if (number == 2) return 2; //number是偶数
: … … …
: if (number == 1) return 1; //number是奇数
: … … …
: if (number == 0) return 0; //number无法判别
: … … …
: }
: (一)请使用数学运算子%完成判断F函数为奇数或偶数的程式
: (注意程式需包含当number为负数或无法计算时的情况)
: (二)请使用逻辑运算子&完成判断F函数为奇数或偶数的程式
: (注意程式需包含当number为负数或无法计算时的情况)
: (三)当-1为2次方时结果为正数,当-1为3次方时结果为负数,
: 请使用乘号运算子*和for循环完成-1为N次方时的正数或负数,
: 判别F函数为奇数或偶数的程式
: (注意程式需包含当number为负数或无法计算时的情况)
第三题
原本是
int F(int number) {
if(number == 0) return 2;
if(number < 0) {
number = (-1) * number;// 这行有错
}
int i, k;
k = 1;
for(i = 0; i < number; i++) {
k = k * (-1);
}
if(k == (-1)) return 1;
if(k == 1) return 2;
return 0;
}
但是会有 overflow 的问题 -(-(2^31))= 2^31, int 最大是 2^31 - 1;
难过Q Q
可以改成
if(number > 0)
number = number * (-1);
for(i = 0;i > number; i
楼主: chses910372 (loveseeker)   2020-08-09 18:12:00
我连大一都不如QQ
作者: lin2492 (樱京冢丈)   2020-08-09 18:59:00
写leetcode常常卡在overflow,但这种手写code加上时间压力真的考虑不到qq好奇这种有没有部分给分
作者: amen1387 (MyBad)   2020-08-09 23:02:00
我个人最后一题是用for(i=0;I<number;i++)number*=-1;再用if去判断number是否大于0啊 没事 我搞错了 好像是一样的方法...
作者: GoGoJoe (gogojoe)   2020-08-10 00:03:00
为什么会有-2的32次方? 我不太明白。
楼主: chses910372 (loveseeker)   2020-08-10 07:15:00
int 最小值就是-(2^32)啊啊打错
作者: GoGoJoe (gogojoe)   2020-08-10 09:21:00
不用考虑溢位吧,全转到非负整数讨论就好。

Links booklink

Contact Us: admin [ a t ] ucptt.com