鱼C论坛

 找回密码
 立即注册
查看: 2469|回复: 18

[已解决]oj显示输出超限怎么解决

[复制链接]
发表于 2021-11-4 16:42:56 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>
#include <math.h>
double getpower(int x,int y);

int main() {
        signed int x,y;//符号参量
        while(scanf("%d %d",&x,&y)!=EOF) {
                double result;
                result=x*getpower(x,y-1);//递归
                if(x==0)
                        break;//x=0跳出循环
                printf("%f\n",result);

        }
        return 0;
}

double getpower(int x,int y) {
        double a;
        a=pow(x,y);

        return a;

}
最佳答案
2021-11-4 17:36:25
本帖最后由 jackz007 于 2021-11-4 17:39 编辑
牵风 发表于 2021-11-4 17:31
就是用递归函数计算x的y次方

  1. #include <stdio.h>

  2. int powerx(int x , int y)
  3. {
  4.         return (! y) ? 1 : x * powerx(x , y - 1)    ;
  5. }

  6. int main()
  7. {
  8.         int x , y                                   ;
  9.         while(scanf("%d%d" , & x , & y) != EOF) {
  10.                 if(! x) break                       ;
  11.                 else printf("%d\n" , powerx(x , y)) ;
  12.         }
  13. }
复制代码

        编译、运行实况:
  1. D:\0002.Exercise\C>g++ -o x x.c

  2. D:\0002.Exercise\C>x
  3. 5 2
  4. 25
  5. 5 3
  6. 125
  7. 3 3
  8. 27
  9. 0 0

  10. D:\0002.Exercise\C>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-4 17:10:54 | 显示全部楼层
         你这个代码是计算什么的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-4 17:11:32 | 显示全部楼层
  1. printf("%lf\n",result);//double 用%lf格式输出
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-4 17:12:01 | 显示全部楼层
jackz007 发表于 2021-11-4 17:10
你这个代码是计算什么的?

x的y次方的递归函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-4 17:24:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-4 17:25:19 | 显示全部楼层
牵风 发表于 2021-11-4 17:12
x的y次方的递归函数

      不会是用递归函数计算 x ^ y 吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-4 17:31:49 | 显示全部楼层
jackz007 发表于 2021-11-4 17:25
不会是用递归函数计算 x ^ y 吧?

就是用递归函数计算x的y次方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-4 17:36:25 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-11-4 17:39 编辑
牵风 发表于 2021-11-4 17:31
就是用递归函数计算x的y次方

  1. #include <stdio.h>

  2. int powerx(int x , int y)
  3. {
  4.         return (! y) ? 1 : x * powerx(x , y - 1)    ;
  5. }

  6. int main()
  7. {
  8.         int x , y                                   ;
  9.         while(scanf("%d%d" , & x , & y) != EOF) {
  10.                 if(! x) break                       ;
  11.                 else printf("%d\n" , powerx(x , y)) ;
  12.         }
  13. }
复制代码

        编译、运行实况:
  1. D:\0002.Exercise\C>g++ -o x x.c

  2. D:\0002.Exercise\C>x
  3. 5 2
  4. 25
  5. 5 3
  6. 125
  7. 3 3
  8. 27
  9. 0 0

  10. D:\0002.Exercise\C>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-4 17:46:58 | 显示全部楼层
jackz007 发表于 2021-11-4 17:36
编译、运行实况:

能解释下return(! y)和if(! x)是什么意思吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-4 17:57:53 | 显示全部楼层
牵风 发表于 2021-11-4 17:46
能解释下return(! y)和if(! x)是什么意思吗


        ! 是逻辑反运算符,当 x 的值为 0 的时候,对应的逻辑值为 false,不为零的时候逻辑值为 true,而如果在前面加上 ! 运算符,逻辑值正好相反。所以,if(x) 等价于 if(x != 0),if(! x) 等价于 if(x == 0)
        ! x 和 ! y 就是 x == 0 和 y == 0 的意思,至于 return 那一句,你应该知道 C 语言的三目运算符吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-4 17:58:25 | 显示全部楼层
没毛病
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-4 17:58:26 | 显示全部楼层
jackz007 发表于 2021-11-4 17:57
! 是逻辑反运算符,当 x 的值为 0 的时候,对应的逻辑值为 false,不为零的时候逻辑值为 true, ...

哦哦懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-4 17:59:29 | 显示全部楼层

        如果问题已经解决,不要忘记设置 "最佳答案" 哦。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-4 18:00:23 | 显示全部楼层

我的也能运行但在oj上就显示输出超限
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-4 18:00:34 | 显示全部楼层
牵风 发表于 2021-11-4 17:31
就是用递归函数计算x的y次方

这也不是递归
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-4 18:02:37 | 显示全部楼层

那能不能告诉我一下递归的话咋改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-4 18:11:36 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-4 18:12 编辑
牵风 发表于 2021-11-4 18:02
那能不能告诉我一下递归的话咋改

  1. double getpower(int x,int y) {
  2.             
  3.         double a=1;
  4.         if (y>1) a=getpower(x,y-1);
  5.         return a*x;

  6. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-4 18:16:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-4 18:23:26 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-4 18:31 编辑

  1. #include <stdio.h>
  2. double getpower(double x,int y);
  3. int main() {
  4.         signed int x,y;//符号参量
  5.         while(scanf("%d %d",&x,&y)!=EOF) {
  6.                 double result;
  7.                 result=getpower(x,y);//递归
  8.                 if(x==0)
  9.                         break;//x=0跳出循环
  10.                 printf("%lf\n",result);

  11.         }
  12.         return 0;
  13. }

  14. double getpower(double x,int y)
  15. {
  16.         if (y>1) x=getpower(x,y-1)*x;
  17.         return x;

  18. }
复制代码



  1. double getpower(double x,int y)
  2. {
  3.         double a=1;
  4.         while(y--)a*=x;
  5.         return a;

  6. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-5 03:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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