鱼C论坛

 找回密码
 立即注册
查看: 2640|回复: 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次方

#include <stdio.h>

int powerx(int x , int y)
{
        return (! y) ? 1 : x * powerx(x , y - 1)    ; 
}

int main()
{
        int x , y                                   ;
        while(scanf("%d%d" , & x , & y) != EOF) {
                if(! x) break                       ;
                else printf("%d\n" , powerx(x , y)) ;
        }
}
        编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c

D:\0002.Exercise\C>x
5 2
25
5 3
125
3 3
27
0 0

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

使用道具 举报

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

使用道具 举报

发表于 2021-11-4 17:11:32 | 显示全部楼层
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次方

#include <stdio.h>

int powerx(int x , int y)
{
        return (! y) ? 1 : x * powerx(x , y - 1)    ; 
}

int main()
{
        int x , y                                   ;
        while(scanf("%d%d" , & x , & y) != EOF) {
                if(! x) break                       ;
                else printf("%d\n" , powerx(x , y)) ;
        }
}
        编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c

D:\0002.Exercise\C>x
5 2
25
5 3
125
3 3
27
0 0

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
那能不能告诉我一下递归的话咋改

double getpower(int x,int y) {
            
        double a=1;
        if (y>1) a=getpower(x,y-1);
        return a*x;

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

使用道具 举报

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

使用道具 举报

发表于 2021-11-4 18:23:26 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-4 18:31 编辑
#include <stdio.h>
double getpower(double x,int y);
int main() {
        signed int x,y;//符号参量
        while(scanf("%d %d",&x,&y)!=EOF) {
                double result;
                result=getpower(x,y);//递归
                if(x==0)
                        break;//x=0跳出循环
                printf("%lf\n",result);

        }
        return 0;
}

double getpower(double x,int y) 
{
        if (y>1) x=getpower(x,y-1)*x;
        return x;

}

double getpower(double x,int y) 
{
        double a=1;
        while(y--)a*=x;
        return a;

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 21:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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