求解答(蓝桥杯java基础练习)运行超时

import java.util.*;

public class Main{
	public static void main(String [] args){
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt() ;
		//利用字符串的反转来实现
		List<Integer> l=new ArrayList<Integer>() ;
		for(int i=10000;i<100000;i++){
			String s=String.valueOf(i);
			if(s.equals(new StringBuilder(s).reverse() .toString() ))
				 {
					 int sum=0;
					 while(i>0){
						 sum+=i%10;
						 i/=10;
					 }
					 if(sum==i)
						 l.add(i);
				 }
				 }
		 for(int i:l)
				 System.out.println(i);
				 }
				 }

123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

### 关于蓝桥杯 Java 第一题的解析 根据提供的引用内容以及相关背景,以下是关于 **蓝桥杯 Java 竞赛第一题** 的解析。 #### 题目概述 蓝桥杯竞赛中的题目通常涉及基础算法、数学运算和逻辑推理。对于提到的第一题,可能涉及到简单的循环结构、累加操作或者模运算等内容。以下是一个典型的例子: 假设某年蓝桥杯 Java 组的第一题要求计算一系列数值的结果并输出最终案。例如,给定一段代码片段用于求解阶乘之和并对某个大数取余[^1]。 --- #### 代码实现与分析 ##### 示例代码 1:基于引用[1] ```java public class A { public static void main(String[] args) { long total = 0; for (int i = 1; i < 40; i++) { total = (total + factorial(i)) % 1000000000; } System.out.println(total); } public static long factorial(int i){ long t = 1; for (int j = 1; j <= i; j++) { t = (t * j) % 1000000000; } return t; } } ``` 上述代码的核心在于通过 `factorial` 函数逐层计算阶乘,并利用 `% 1000000000` 来防止溢出。这种处理方式适用于需要对大数据量进行模运算的情况。 --- ##### 示例代码 2:基于引用[2] 另一种实现方法如下所示: ```java import java.util.*; public class Main { public static long INF = 10000000000L; public static void main(String[] args) { long sum = 0; for (int i = 1; i <= 40; i++) { sum += fact(i); } System.out.println(sum % 1000000000); } public static long fact(int n) { long sum1 = 1; for (long i = 1; i <= n; i++) { sum1 *= i; if (sum1 >= INF) { sum1 %= INF; } } return sum1; } } ``` 此版本同样实现了阶乘的累加功能,但在变量命名上略有不同。值得注意的是,在实际比赛中可能会遇到更复杂的边界条件或性能优化需求[^2]。 --- #### 常见错误及解决办法 在解此类问题时,参赛者容易犯以下几个典型错误: 1. 数据范围超出基本类型的表示能力(如 int 或 long)。可以通过引入更大的存储单位(如 BigInteger)来规避这一风险[^3]。 2. 忽视了取模运算的重要性,导致中间结果溢出而影响最终准确性。 3. 时间复杂度过高,尤其是在嵌套循环较多的情况下可能导致超时。 为了避免这些问题,建议提前规划好数据类型的选择策略,并尽可能简化不必要的重复计算过程。 --- #### 总结 综上所述,针对蓝桥杯 Java 竞赛中的第一类简单计算型题目,掌握基本的数据结构知识和高效编码技巧至关重要。无论是采用何种具体方案解决问题,都应注重细节把控以提升程序运行效率与稳定性。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值