蓝桥杯练习题阶乘计算

DemoRosie 2020-10-11 08:07:46
蓝桥杯练习题阶乘计算

不知道有什么问题,感觉思路是没有错的,求解答

package Basic_VIP;

import java.util.ArrayList;
import java.util.Scanner;
public class Basic_30 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
ArrayList<Integer> alist = new ArrayList<>();
alist.add(1);
for (int i=1;i<=n;i++){
int size = alist.size();
for (int j=0;j<size;j++){
// 先把每一位乘以i,再进行进位
int temp = alist.get(j);
temp *= i;
alist.set(j,temp);
}
for (int m=0;m<size;m++){
int temp1 = alist.get(m);
if (temp1 > 10){
alist.set(m,temp1%10);
int tempResult = temp1/10;
if (size <= m+1){
alist.add(tempResult);
}else{
int temp2 = alist.get(m+1);
alist.set(m+1,temp2+tempResult);
}
}else{
alist.set(m,temp1);
}
}
}
for (int i=alist.size()-1;i>-1;i--){
System.out.print(alist.get(i));
}
}
}

...全文
77 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文档主要针对蓝桥杯 C 语言竞赛中的典型问题提供了详细的解决方案,包括素数判断、阶乘计算和字符串反转三大类。其中,对于素数部分,详细介绍了单一数字的素数判定方法、区间内素数查找的方法以及验证哥德巴赫猜想的问题解决途径,涵盖从暴力枚举到高效的筛法优化算法。关于阶乘计算,讲解了简单阶乘、能够处理较大数值的大数阶乘模拟与基于数学公式的快速求阶乘位数的方法。在字符串反转方面,覆盖基本翻转逻辑直至复杂情形如仅调整句子中各单词的顺序而不改变单个字母位置或维持原有空白字符的位置关系等情况。 适用人群:文档面向的是具有一定 C 语言编程经验和数据结构基础知识的学习者或者参赛选手,尤其是准备参加编程比赛特别是像蓝桥杯这类需要扎实掌握基本运算、内存管理、算法设计能力赛事的选手。 使用场景及目标:该文档适用于个人练习期间作为参考资料自学,或是教师备课时用来构建相关教学案例,帮助学生巩固知识点并且增强他们解决实际编程挑战的信心和技术水平。同时,也可以用作团队协作中的共同参考手册,在遇到相同类型的习题时提高解题效率并确保成员间的一致性和正确度。 其他说明:文档不仅关注于最终答案的给出,更加侧重解析过程中每一步思考的方向以及具体操作技巧的应用。因此推荐使用者多尝试自己动手完成相应题目后再去对比提供的完整源代码片段,从而更好地体会编写高效可靠程序背后隐藏的思想方法论,并逐步培养自主解决类似复杂情况的能力。此外,考虑到某些复杂例子可能涉及到多个概念的理解综合运用,作者也在必要之处适当插入简明扼要的相关知识介绍,以便引导初学者顺利过渡理解难点。

23,409

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧