请根据要求编写Java程序
请用户输入一个数字n,计算从1到该数字的平方和。如输入:10,则计算1+22+33+44+…+1010
有帮助的话记得采纳一下哦
/**
* 请根据要求编写Java程序
* 请用户输入一个数字n,计算从1到该数字的平方和。如输入:10,则计算1+22+33+44+…+1010
* @Author ChenJiahao(程序员五条)
* @Date 2021/9/21 19:42
*/
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
// 定义sum用来存储和,因为第一个数字永远都是1,索性将1直接先赋值给sum,下面从第二个数开始算
int sum = 1;
// 从第二个数开始算
for (int i = 2; i <= input; i++) {
// 这一步的目的是将数字进行转换,例如:2转换为22、3转换为33、......
// i + "" + i 因为""的存在,所以这里相当于转换成了字符串,然后再通过Integer.valueOf方法将字符串转换成了int
int temp = Integer.valueOf(i + "" + i);
// 累加
sum += temp;
}
System.out.println(sum);
}
}
第一个事情,你那例子不叫平方和,平方和的意思是平方的和,应该是1+2^2(4)+3^2(9)一直到10^2(100)=385
第二个事情,按照你的说法,也应该是11+22+33+。。。1010
我写了3个方法供你参考,第一个和第二个方法是平方和(第一个方法squareSumMethod1可读性好一点,第二个方法squareSumMethod2用的平方和的数学公式),第三个方法(calc)是按照你说法写的函数 11+22+33,如果确认1要特殊处理,在for里面加个if特殊处理就行了
import java.util.Scanner;
public class Calc {
// 平方和 方法1
public int squareSumMethod1(int n){
if (n < 1){
return -1;
}
int sum = 0;
for (int index = 1;index<= n;index++){
sum += index * index;
}
return sum;
}
// 平方和 方法2 平方和公式:n*(n+1)*(2n+1)/6
public int squareSumMethod2(int n){
if (n < 1){
return -1;
}
return n * (n + 1) * (2 * n + 1) / 6;
}
// 输入10,返回11+22+33+44+…+1010
public double calc(int n){
if (n < 1){
return -1;
}
double sum = 0;
for (int index = 1;index<= n;index++){
int length = String.valueOf(index).length();
double tmp = index + index * Math.pow(10, length);
sum += tmp;
System.out.println(tmp);
}
return sum;
}
public static void main(String[] args) {
// 屏幕输入数字
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
Calc calc = new Calc();
// 平方和计算方法1
int sum = calc.squareSumMethod1(10);
System.out.println("squareSumMethod1:" + sum);
// 平方和计算方法2
sum = calc.squareSumMethod2(10);
System.out.println("squareSumMethod2:" +sum);
// 题目要求计算
double sum1 = calc.calc(10);
System.out.println("calc:" +sum1);
}
}
public class HelloWorld {
public static void main(String []args) {
System.out.println(sum(3));
}
public static int sum(int n) {
double sum = 0;
for(double i=1;i<=n;i++) {
double k = java.lang.Math.pow(i,i);
sum+=k;
}
return (int)sum;
}
}
public static void main(String[] args) {
while (true) {
try {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数(0除外):");
int number = sc.nextInt();
if (number <= 0) {
System.out.println("你输入的不是除0以外的正整数,请重新输入!");
} else {
int sum = 0;
for (int i = 1; i <= number; i++) {
sum += i * i;
}
System.out.println("1到该数字的平方和为:"+sum);
break;
}
} catch (Exception e) {
System.out.println("你输入的不是正整数,请重新输入!");
}
}
}