鱼C论坛

 找回密码
 立即注册
查看: 5519|回复: 24

[已解决]小白Python练习册(12)【鱼币福利】

[复制链接]
发表于 2020-5-2 09:03:42 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 liuzhengyuan 于 2020-5-2 09:17 编辑

小白Python练习册(12)【鱼币福利】





小 A,在 小 B 的棋盘上摆米粒(B 的棋盘长为 n 格,宽为 m 格)
小 A 在棋盘上的第一个格子 摆了 1 个米粒
第二个格子 摆 2 个
第三个格子 摆 4 个
第四个格子 摆 8 个
……
以此类推


输入

两个正整数 n 和 m,表示棋盘的长和宽(两个数之间空一行)

输出

小 B 能收获多少米粒

答案:


最佳答案
2020-5-2 09:03:43
渣渣版
  1. a = 0
  2. b = 1
  3. n = int(input())
  4. m = int(input())

  5. for i in range(n * m):
  6.     a += b
  7.     b *=2
  8. print(a)
复制代码

最佳答案

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 09:03:43 | 显示全部楼层    本楼为最佳答案   
渣渣版
  1. a = 0
  2. b = 1
  3. n = int(input())
  4. m = int(input())

  5. for i in range(n * m):
  6.     a += b
  7.     b *=2
  8. print(a)
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
liuzhengyuan + 2 + 2 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 09:16:59 | 显示全部楼层
  1. import math

  2. m, n = eval(input('enter m and n:'))
  3. print(int(math.pow(2, m * n) - 1))
复制代码


可以先用数学算一下。。。不一定拿到就循环

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
liuzhengyuan + 2 + 2 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 10:16:44 | 显示全部楼层
  1. #include<stdio.h>

  2. int main(){
  3.     unsigned long long a,b;
  4.     scanf("%llu%llu",&a,&b);
  5.     printf("%llu",(2ULL<<a*b-1)-1);
  6.     return 0;
  7. }
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
liuzhengyuan + 2 + 2 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 10:22:12 From FishC Mobile | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-2 10:16

python也支持位运算吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 10:24:21 | 显示全部楼层
  1. include<iostream>
  2. using namespace std;

  3. int main(){
  4.     unsigned long long a,b;
  5.     cin>>a>>b;
  6.     cout>>(2ULL<<a*b-1ULL)-1ULL)>>endl;
  7.     return 0;
  8. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 10:24:53 | 显示全部楼层
wp231957 发表于 2020-5-2 10:22
python也支持位运算吧

是的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 10:26:09 | 显示全部楼层
  1. a,b=map(int,input().split())
  2. print((2<<(a*b)-1)-1)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 10:26:26 | 显示全部楼层
  1. n=int(input('棋盘长为:'))
  2. m=int(input('棋盘宽为:'))
  3. c=m*n
  4. i=1
  5. a=0
  6. b=1
  7. while i<=c:
  8.     a+=b
  9.     b*=2
  10.    
  11.     i+=1
  12. print(a)
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
liuzhengyuan + 2 + 2 + 1 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 10:29:08 | 显示全部楼层

小白版本

本帖最后由 WangJS 于 2020-5-2 10:57 编辑
  1. n = input('输入长和宽,用英文逗号隔开:').split(',')
  2. n = [int(f) for f in n]
  3. num = n[0]*n[1]
  4. jieguo = 0
  5. zengjia = 1
  6. for i in range(num):
  7.     jieguo += zengjia
  8.     zengjia *= 2
  9. print(jieguo)
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
liuzhengyuan + 2 + 2 + 1 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 10:48:29 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-2 11:00 编辑
  1. def rice(n,m):
  2.     return sum([2**(i-1) for i in range(1,(n*m)+1)])
复制代码

评分

参与人数 1荣誉 +2 贡献 +1 收起 理由
liuzhengyuan + 2 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 10:53:34 | 显示全部楼层
  1. m = int(input())
  2. n = int(input())
  3. ans=1
  4. for i in range(1, m*n):
  5.     ans *= 2
  6. print(ans)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 14:02:19 | 显示全部楼层
  1. print(2 ** (int(input()) * int(input())) - 1)
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
liuzhengyuan + 2 + 2 + 2

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-2 14:55:07 | 显示全部楼层


注意审题呀,你的答案不对。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 15:59:05 | 显示全部楼层
  1. n = int(input())
  2. m = int(input())
  3. s = 0

  4. for i in range(m * n):
  5.     s += 2 ** i
  6.    
  7. print(s)
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
liuzhengyuan + 2 + 2 + 1 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 16:45:21 | 显示全部楼层
  1. a,b=map(int,input('请输入两个正整数 n 和 m,表示棋盘的长和宽(两个数之间空一行)').split())
  2. print('小 B 能收获多少米粒')
  3. print('答案',(2**(a*b)-1))
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
liuzhengyuan + 2 + 2 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 17:29:05 | 显示全部楼层
……
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-3 09:14:14 | 显示全部楼层
本帖最后由 沉默的人e 于 2020-5-3 09:19 编辑

做题版
  1. from functools import reduce
  2. print(reduce(lambda x,y:x+y,[2**x for x in range(eval(input('Please input the length and width of the chessboard in the form of a*b\ne.g:5*6\n \t ')))]))
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
liuzhengyuan + 2 + 2 + 1 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-3 09:18:32 | 显示全部楼层
这个不会呀
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-3 17:42:49 | 显示全部楼层
今天咋没题了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-19 02:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表