|
发表于 2022-11-12 22:08:37
|
显示全部楼层
本帖最后由 gandixiwang 于 2022-11-12 23:10 编辑
- #include <stdio.h>
- #include <math.h>
- #define MAX pow(10,18)
- //递归函数
- int count(long long int x,long long int y)
- {
- //如果y等于1,退出程序并返回x的值
- if(y==1)
- {
- return x;
- }
- //如果y不等于1,x和y各减半并进入函数
- else if(y!=1)
- {
- count(x/2,y/2);
- }
- }
- int main(void)
- {
- long long int x;
- long long int y;
- printf("请输入x和y的值:");
- scanf("%lld %lld",&x,&y);
-
- //如果x和y大于10的18次方,提示并重新输入
- while(x>MAX || y>MAX)
- {
- printf("您输入的值大于10的18次方,请重新输入:");
- scanf("%lld %lld",&x,&y);
- }
-
- //调用并输出x的值
- printf("xi的值为:%d",count(x,y));
- }
复制代码
运行实例
这样子应该符合你的题目要求 |
|