b2b平臺有哪些類別網絡營銷優(yōu)化
問題描述
對于正整數 n, 如果存在正整數 k 使得 n=1+2+3+?+k=k(k+1)2n=1+2+3+?+k=k(k+1)/2?, 則 n 稱為三角數。例如, 66066 是一個三角數, 因為 66066=1+2+3+?+36366066=1+2+3+?+363 。 如果一個整數從左到右讀出所有數位上的數字, 與從右到左讀出所有數位 上的數字是一樣的, 則稱這個數為回文數。例如, 66066 是一個回文數, 8778 也是一個回文數。 如果一個整數 nn 既是三角數又是回文數, 我們稱它為三角回文數。例如 66066 是三角回文數。 請問, 第一個大于 20220514 的三角回文數是多少?
答案提交
這是一道結果填空的題, 你只需要算出結果后提交即可。本題的結果為一 個整數, 在提交答案時只填寫這個整數, 填寫多余的內容將無法得分。
運行限制
- 最大運行時間:1s
- 最大運行內存: 256M
解法代碼
#include <stdio.h> // 包含標準輸入輸出庫
#include <stdlib.h> // 代碼中未使用int main()
{ int x = 0; // 初始化累加和x為0 // 使用for循環(huán)進行無限迭代,i從1開始,每次循環(huán)i增加1 for (int i = 1;; i++) { x += i; // 將當前的i值累加到x上 // 檢查累加和x是否大于20220514 if (x > 20220514) { int a = x; // 復制x的值到a,以便在不修改x的情況下進行反轉操作 int b = 0; // 初始化b為0,用于存儲a(即x)的反轉數字 // 使用while循環(huán)反轉a的數字,并累加到b上 while (a != 0) { b = b * 10 + a % 10; // 將a的最后一位數字加到b上,并移動b的小數點一位 a = a / 10; // 移除a的最后一位數字 } // 檢查反轉后的數字b是否與原始數字x相等(即檢查x是否為回文數) if (b == x) { printf("%d\n", x); // 如果x是回文數,則打印x break; // 并跳出循環(huán)(因為已經找到了第一個符合條件的回文數) } } } return 0; // 程序正常結束
}
運行結果