作者chses910372 (机器人小废物)
看板Gov_owned
标题Re: [闲谈] 中华电信资讯系统开发及维运 问答题
时间Sun Aug 9 18:10:57 2020
※ 引述《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--)
k = k * (-1);
才不会有错
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.160.75.36 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Gov_owned/M.1596967861.A.A44.html
1F:→ chses910372: 我连大一都不如QQ08/09 18:12
2F:推 lin2492: 写leetcode常常卡在overflow,但这种手写code加上时间压08/09 18:59
3F:→ lin2492: 力真的考虑不到qq08/09 18:59
4F:→ lin2492: 好奇这种有没有部分给分08/09 19:00
5F:推 amen1387: 我个人最後一题是用for(i=0;I<number;i++)number*=-1;08/09 23:02
6F:→ amen1387: 再用if去判断number是否大於0 08/09 23:03
7F:→ amen1387: 啊 没事 我搞错了 好像是一样的方法...08/09 23:04
8F:推 GoGoJoe: 为什麽会有-2的32次方? 我不太明白。08/10 00:03
9F:→ chses910372: int 最小值就是-(2^32)08/10 07:15
10F:→ chses910372: 啊啊打错08/10 08:14
※ 编辑: chses910372 (118.168.12.29 台湾), 08/10/2020 08:18:33
11F:推 GoGoJoe: 不用考虑溢位吧,全转到非负整数讨论就好。 08/10 09:21