鱼C论坛

 找回密码
 立即注册
查看: 1421|回复: 19

萌新求助

[复制链接]
发表于 2018-4-22 19:19:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
x=int(input())
y=int(input())
t=int(input())
y=y-1
while t>0:
    t=t-1
    while y>0 :
        x=x*x
        y=y-1
    if (x>=100) :
        result=x%1000
        print(result)
    elif (10<=x<=99) :
        print('0')
        print(result)
    else :
        print('00')
        print(result)
请问,这个代码为什么运行不了,求x的y次方取后三个数,如果不足就在高位补0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-4-22 19:32:17 | 显示全部楼层
输入的x和y用空格隔开
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 19:34:39 | 显示全部楼层
你的t干吗用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 19:38:04 | 显示全部楼层
本帖最后由 塔利班 于 2018-4-22 19:39 编辑

你这种当x的y次幂不到100,result相当没定义
打印用'0'+str(x)这种表示,不然会换行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-22 19:39:23 | 显示全部楼层

一共测试t组
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-22 19:42:50 | 显示全部楼层
塔利班 发表于 2018-4-22 19:38
你这种当x的y次幂不到100,result相当没定义
打印用'0'+str(x)这种表示,不然会换行

我加了result=x还是运行不了
ValueError: invalid literal for int() with base 10: '10 3'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 19:58:39 | 显示全部楼层
Eldridge 发表于 2018-4-22 19:42
我加了result=x还是运行不了
ValueError: invalid literal for int() with base 10: '10 3'

你这种输入就不能用换行来区分,输完一个数字要用回车
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-22 20:40:27 | 显示全部楼层
塔利班 发表于 2018-4-22 19:58
你这种输入就不能用换行来区分,输完一个数字要用回车

大佬,那应该怎么输入,输入的x和y之间有空格
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 21:03:54 | 显示全部楼层
哈!看这里:x = x*x,要知道每次迭代x的值都是不一样的。
就拿2^3来说吧,在你的程序里跑的话就是:第一次x=2,第二次x = 2*2,第三次x=4*4,最后出来就是256!
==================================================================
x=int(input())
y=int(input())
total = 1
while y>0:
    total *= x
    y -= 1
result = 0
if total>=100:
    result=total % 1000
    print(result)
elif x>=10:
    print('0'+str(result))
else:
    print('00'+str(result))
================================
这样就不会有任何问题了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-4-22 21:04:49 | 显示全部楼层
另,你的代码风格不够Pyhtonic。if语句请不要加括号。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-4-22 21:08:09 | 显示全部楼层
ABC23 发表于 2018-4-22 21:03
哈!看这里:x = x*x,要知道每次迭代x的值都是不一样的。
就拿2^3来说吧,在你的程序里跑的话就是:第一 ...

大佬,那两个数之间的空格怎么办
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 21:11:35 | 显示全部楼层
x = x*x <==> x *= x,这是原地赋值操作。
total = total *x <==> total *= x,这是复制赋值操作。
=================================
什么两个数之间的空格?
>>> python3 demo.py
2
3
000
有什么问题吗?Python3.x的input()函数每次读取一行,相当于Python2的raw_input()(在3中现已经合并)。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-22 21:57:03 | 显示全部楼层
ABC23 发表于 2018-4-22 21:11
x = x*x  x *= x,这是原地赋值操作。
total = total *x  total *= x,这是复制赋值操作。
============= ...

谢谢大佬,但是超时了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-22 21:58:54 | 显示全部楼层
Eldridge 发表于 2018-4-22 21:57
谢谢大佬,但是超时了

2
10 3
8 5
可能是因为题里是这样输入了,有空格
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 22:00:49 | 显示全部楼层

什么题,方便透露吗?
============
看到fishc论坛上不是有一个jit模块,貌似装上去会快1000倍。(具体的我也没试过。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-22 22:02:54 | 显示全部楼层
ABC23 发表于 2018-4-22 22:00
什么题,方便透露吗?
============
看到fishc论坛上不是有一个jit模块,貌似装上去会快1000倍。(具体 ...

输入x和y的值,计算xy的后3位数。

输入


输入数据有多组,第一行为数据组数t,接下来有t组数据,每组数据占一行,每行两个非负整数x和y(x, y <10000)。

输出


每组输出一行,每行输出3位数,若不足3位则高位补0。

样例输入


2
10 3
8 5


样例输出
000
768
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 22:15:24 | 显示全部楼层
#如果x=4,y=4,只执行if语句
你直接打印0,是换行打印,如果想连接起来,则:print(' 0 ',end = ' ')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-22 22:28:28 | 显示全部楼层
故梦L 发表于 2018-4-22 22:15
#如果x=4,y=4,只执行if语句
你直接打印0,是换行打印,如果想连接起来,则:print(' 0 ',end = ' ')

谢谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 23:14:21 | 显示全部楼层

  1. x=int(input('输入正数:'))
  2. y=int(input('输入正数:'))
  3. sum=1
  4. for i in range(y):
  5.     sum*=x
  6. if sum<0:
  7.     print('error')
  8. elif 0<=sum<1000:
  9.     print('%03d'% sum)
  10. else:
  11.     sum%=1000
  12.     print('%03d'% sum)
复制代码

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

使用道具 举报

 楼主| 发表于 2018-4-23 08:19:22 | 显示全部楼层

请问大佬怎么用python3实现类似c语言eof的效果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-29 15:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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