PAT 1024 Palindromic Number

本文介绍了一个简单的PAT算法题目,该题目要求通过翻转一个大数并与其原数相加来找到最近的回文数。通过C语言实现,文章提供了完整的代码示例,并解释了如何进行大数操作。

http://pat.zju.edu.cn/contests/pat-practise/1024

简单大数

 

 1 #include <stdio.h>
 2 #include <string.h>
 3 char ori_str[100],trans_str[100];
 4 char temp[100];
 5 int K;
 6 
 7 void trans(char *str)
 8 {
 9     int i=strlen(str);
10 
11     int j;
12     for(j=0;j<i;j++) {
13         trans_str[j]=ori_str[i-1-j];
14     }
15     trans_str[i]='\0';
16 }
17 
18 bool check(char *str)
19 {
20     char t[100];
21     int i=strlen(str);
22     int j=0;
23     for(j=0;j<i;j++) {
24         t[j]=str[i-1-j];
25     }
26     t[i]='\0';
27 
28     return strcmp(str,t)==0;
29 }
30 
31 
32 void calc(char *str1,char *str2)
33 {
34     int i=strlen(str1);
35 
36     int j;
37     int c=0;
38     for(j=0;j<i;j++) {
39         int m=str1[j]-'0'+str2[j]-'0'+c;
40         temp[j]=(m%10)+'0';
41         c=m/10;
42     }
43     if(c) {
44         temp[j]=c+'0';
45     }
46     temp[j+1]='\0';
47 }
48 int main()
49 {
50     scanf("%s%d",ori_str,&K);
51     
52     if(check(ori_str)) {
53 
54         printf("%s\n",ori_str);
55         printf("0\n");
56         return 0;
57 
58     }
59 
60     int i;
61     for(i=1;i<=K;i++) {
62 
63         trans(ori_str);
64         calc(ori_str,trans_str);
65 
66         if(check(temp)) {
67             printf("%s\n",temp);
68             printf("%d\n",i);
69             break;
70         } else if (i==K) {
71         //    printf("%s\n",temp);
72             int j;
73             for(j=strlen(temp)-1;j>=0;j--) {
74                 putchar(temp[j]);
75             }
76             putchar('\n');
77             printf("%d\n",i);
78         }
79         strcpy(ori_str,temp);
80     }
81     return 0;
82 }

转载于:https://www.cnblogs.com/yangce/archive/2012/06/12/2546481.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值