学好编程! 2021-07-28 15:31 采纳率: 96.8%
浏览 16
已结题

求解析过程 从那里开始入手

结果是-125=-555
若输入的值是-125。
#include <stdio.h>
#include <math.h>

fun (int n)

int k,r ;

for(k=2; k<=sqrt(n);k++)

r=n %k;

while(!r) {

printf(“%d",k); n=n/k;

if (n>1) printf(“*");

r=n %k;

if (n!=1) printf(%dn",n);

int main ( )

int n;
scanf(%d",&n);

printf(“%d=”,n);

if (n<0) printf(“-”);

n= fabs(n); fun(n);
return 0;

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2021-07-28 15:45
    关注

    分析一下,n=-125,那么调用函数为fun(125)
    for循环范围为k从2到11,因为sqrt(125)为11-12之间
    while循环成立条件要求r为0,而r的值为125求余k,所以k从2到11之间只有k=5满足条件,进入循环
    此时printf("%d",k)会输出5
    n=n/k使得n=25
    由于n>1,所以输出
    r=n%k=25%5=0,可以继续循环,printf("%d",k)再次输出一个5
    n=n/k=25/5=5
    由于n>1,所以再次输出

    r=n%k=0,继续循环,printf("%d",k)再次输出一个5,
    n=n/k=5/5=1
    n>1不成立,不输出*号
    r=n%k=1%5=1,循环结束
    由于n值为1,所以n!=1不成立,最后的print不输出
    所以最终输出为:

    -125=-5*5*5
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月5日
  • 已采纳回答 7月28日
  • 创建了问题 7月28日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?