| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3644 人关注过本帖
标题:[Game]代码游戏 计算题
取消只看楼主 加入收藏
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:9 
[Game]代码游戏 计算题
输入2个int计算乘积
备注 只需要考虑int范围内的计算结果即可

题目很简单对不对 很无聊对不对
所以 有一点点提高趣味性的小小的要求
不使用乘法(包括* *=)
不使用除法(包括* /=)
不使用加法(包括+ +=)
不使用减法(包括- -=)

让我看看谁的脑洞最深
搜索更多相关主题的帖子: 代码 游戏 计算 int 乘法 
2018-06-06 17:05
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 2楼 九转星河
特意没禁止位运算就是因为
这题目正规处理就是用位运算实现
不过还有一些脑洞处理
要不要挑战一下

https://zh.
2018-06-06 17:25
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
加油
还有潜力可以挖

https://zh.
2018-06-06 17:43
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 10楼 九转星河
C99的VLA 了解一下

https://zh.
2018-06-06 20:28
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 12楼 九转星河
变长数组 还有多种不同玩法

https://zh.
2018-06-06 21:15
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用九转星河在2018-6-6 18:32:15的发言:

是不是说就是除了加减乘除,自增,自减,取余,pow之类的都可以用?~

是的 自增,自减,取余,pow之类都行

https://zh.
2018-06-06 21:15
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 17楼 九转星河
哈哈哈 这个有意思
这个脑洞我还没想到过

https://zh.
2018-06-06 21:47
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用九转星河在2018-6-7 09:35:32的发言:

int comp( const void* p,const void* q )
{
    return *( char* )q-*( char* )p;
}


   memset(p,-1,b);

当然,没有处理负数,当然就算加入负数也差不多是这样子的~

这段代码 有几点问题

memset初始化 -1 其实不好
这样你希望用 comp把-1摆到最后面 需要依赖 char 是signed char
实际上 char 可能是 unsigned char
这时候 -1 就没交换到最后面了

直接初始化为 正数
然后升序处理
不用依赖char是有符号还是无符号

图片附件: 游客没有浏览图片的权限,请 登录注册


这里的 char* 是 unsigned char*
结果就错了

[此贴子已经被作者于2018-6-7 10:34编辑过]


https://zh.
2018-06-07 10:33
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 22楼 九转星河
( unsigned )(-~( int )a)

一次 ++a 简单多了

https://zh.
2018-06-07 11:26
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
    int m, n;
    scanf("%d%d", &n, &m);
    printf("%d\n", sizeof(char[n][m]));    


    int m, n;
    scanf("%d%d", &n, &m);
    printf("%d\n", ((char(*)[n][m])0)+1);    


基本是利用VLA
还有一些和你想一样的
比如循环++

你用函数处理的几个是我没想到的
脑洞大

https://zh.
2018-06-11 17:14
快速回复:[Game]代码游戏 计算题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021095 second(s), 12 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved