以下是使用Java编写的解决方案:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.close();

        long sum = calculateSum(n);
        System.out.println(sum);
    }

    private static long calculateSum(int n) {
        long sum = 0;
        int oddSum = 0;
        int evenSum = 0;

        for (int i = 1; i <= n; i++) {
            if (i % 2 == 1) {
                oddSum += i;
            } else {
                evenSum += i;
            }
        }

        sum = oddSum * evenSum;
        return sum;
    }
}

在上面的代码中,我们首先从输入中获取数字串的长度n。然后,我们调用calculateSum()方法来计算权值和。在calculateSum()方法中,我们使用两个变量oddSumevenSum来分别计算奇数位和偶数位的和。我们使用for循环来迭代1到n,根据当前迭代的索引值i来更新奇数位和偶数位的和。最后,我们将奇数位和和偶数位和相乘得到权值和,并将其返回。

最后,我们在main()方法中打印权值和。请注意,此解决方案假设输入的n大于等于1。

Java 编程题:计算数字串权值之和

原文地址: https://www.cveoy.top/t/topic/qvEh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录