arr[1] = 1;
public int fn(int n) {
return n<=0?0:(n==1?1:(arr[n]!=0?arr[n]:(arr[n] = fn(n-1)+fn(n-2))));
}
上面的代码是假的,题目在下面
编写一个程序,这个程序要处理命令行参数,也就是在运行程序的命令中,除了程序名之外,还需要传递给程序一些参数。需要用main 函数的第二种形式来处理:int main(int argc, char *argv).用这种方式编写一个程序,程序运行的命令行中,除了本身的程序名称以外,还需要输入一个自然数参数,按回车建运行程序后,程序打印这个自然数的质数分解。不要忘记把字符串参数转换成整数类型的数据。
已知代数定理,任何大于1的自然数都可以写成质数的乘积。例如4=2*2,15=3*5,18=2*3*3,如果这个自然数就是质数,则不用分解。
提示:把质数放在数组中,用n去除这个数组中的质数,如果可以整除,则继续找质数来除,直到把n变成1为止。把可以整除n的质数放在一个数组中,最后循环打印。
怎么修改呀(真正的要求在代码下面)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 #include <stdio.h> #include<string.h> int main(int argc, char *argv[]) { int i,n=0,f=1; char s[50]; scanf("%s",s); if(s[0]==' ') { printf("The program needs at least one integer parameter to run"); f=0; } else { for(i=0; s[i]!='\0'; i++) { if(s[i]>='0'&&s[i]<='9') { n=n*10+s[i]-'0'; printf("%d \n",n); } else { f=0; printf("The parameter has to be an integer format"); break; } } } if(f==1) { printf("%d=",n); for(int i=2; i<n; i++) { while(n>i)//进入循环n的值会变所以要再次判断ni的值大小情况 { if(n%i==0) { printf("%d*",i); n/=i;//商 } else { break;//不符合直接终止循环 } } } printf("%d",n);//这里是把最后一个值输出 printf("\n"); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来