三角回文数

三角回文数

📆Date: 2023年1月4日
✒️Author: SmartBoy
📓Classify: 蓝桥杯每日一题
🔖Language: Java

✨题目描述

对于正整数 n ,如果存在正整数 k 使得 n = 1 + 2 + 3 + · · · + k = k(k+1)/ 2 ,则 n 称为三角数。例如,66066 是一个三角数,因为 66066 = 1 + 2 + 3 + · · · + 363。 如果一个整数从左到右读出所有数位上的数字,与从右到左读出所有数位 上的数字是一样的,则称这个数为回文数。例如,66066 是一个回文数,8778 也是一个回文数。 如果一个整数 n 既是三角数又是回文数,我们称它为三角回文数。例如 66066 是三角回文数。 请问,第一个大于 20220514 的三角回文数是多少?

🎉解题思路

先计算出20220514对应的k的值,从这个k值开始做循环,利用三角数公式得到int n的值即为三角数,再调用回文判断函数,如果这个数为回文数,输出即可。

🥇Java源码
public class Main {
   public static void main(String[] args) {
       for (int i = 6359; i < Integer.MAX_VALUE; i++) {
           int n = (i * (i + 1)) / 2;
           if (isPalindrome(n)){
               System.out.println(n);
               break;
           }
       }
   }

   // 判断回文
   public static boolean isPalindrome(int n){
       StringBuilder s = new StringBuilder(Integer.toString(n));
       String a = s.toString();
       return a.equals(s.reverse().toString());
   }
}
📧Summary
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值