• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

POJ1047RoundandRoundWeGo

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 #include<stdio.h> 
 2 #include <string.h>
 3 #define MAX_LEN 60
 4 
 5 unsigned aNum[MAX_LEN+10];//存放倒过来的大数,从低位开始相乘
 6 unsigned aRes[MAX_LEN+10];//存放相乘后的大数
 7 unsigned aFlag[MAX_LEN+10];// 看是否匹配
 8 
 9 int main()
10 {
11     char sNum[MAX_LEN+10];
12     int nLen;
13     int i,j,k;
14     while (~scanf("%s",&sNum))//刚开始一直Output Limit Exceeded,提交了好几次,原来是这里不加~会死循环,但换成C++的cin可以,它包括ctrl+z结束符 
15     {
16         int f = 1;
17         nLen = strlen(sNum);
18         j = 0;
19         for (i = nLen-1; i >= 0; i--)//将大数倒过来 
20             aNum[j++] = sNum[i] - '0';
21         for (i = 2; i <= nLen; i++)//乘以2->n
22         {
23             memset(aRes, 0, sizeof(aRes));
24             for (j=0;j<=nLen-1;j++)//相乘
25                 aRes[j] = aNum[j] * i;
26             for (j = 0; j <=nLen-1; j++)//统一进位
27             {
28                 if (aRes[j] >= 10)
29                 {
30                     aRes[j+1] += aRes[j] / 10;
31                     aRes[j] %= 10;
32                 }
33             }
34             memset(aFlag, 0, sizeof(aFlag));
35             for (j = 0; j < nLen; j++)//相乘之后的大数与原来的数进行匹配,看是否匹配 
36             {
37                 unsigned tmp = aRes[j];
38                 k = 0;
39                 while (k < nLen)
40                 {
41                     if (aNum[k]==tmp && aFlag[k]==0)//如果对应匹配,而且当前位未曾匹配过,此过程是从原来的大数里从k=0,k++,对应查找相乘得到的大数, 
42                     {
43                         aFlag[k] = 1;//标记,表示已经匹配过
44                         break;
45                     }
46                     k++;
47                 }
48                 if (k >= nLen)//表示未匹配成功
49                 {
50                     f = 0;
51                     break;
52                 }
53             }
54             if (f == 0)
55             {
56                 printf("%s is not cyclic\n",sNum);
57                 break;
58             }
59         }
60         if (f == 1)
61              printf("%s is cyclic\n",sNum);
62     }
63     return 0;
64 }

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
项目二(业务GO)——跨域上传图片(请求接口)发布时间:2022-07-10
下一篇:
go格式化占位符发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap