| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 76 人关注过本帖
标题:蓝桥杯一道题不知道为什么我的程序错了33%,有大神能帮我看下有哪里不妥吗
只看楼主 加入收藏
Emmaer123
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2019-9-20
结帖率:66.67%
  问题点数:0  回复次数:1   
蓝桥杯一道题不知道为什么我的程序错了33%,有大神能帮我看下有哪里不妥吗
题目描述
 小明发现49很有趣,首先,它是个平方数。它可以拆分为4和9,拆分出来的部分也是平方数。169也有这个性质,我们权且称它们为:拼接平方数。100可拆分1 00,这有点勉强,我们规定,0 00 000 等都不算平方数。小明想:还有哪些数字是这样的呢?你的任务出现了:找到某个区间的所有拼接平方数。
输入
两个正整数  a b (a<b<10^6)
输出
若干行,每行一个正整数。表示所有的区间[a,b]中的拼接平方数
样例输入
1 200
样例输出
49
169

#include <stdio.h>
#include <math.h>
int j,i,n,n2,k,sum1=0,sum2=0,sum,mark1,mark2,a[100]={0},b[100]={0},c[100]={0};
int weishu(int n)
    {
        n2=n;
        for(int j=1;n2>0;j++)  
        {
            n2/=10;  
            sum=j;
         }
         for(int i=sum;i>=1;i--)        {    a[i]=n%10;n/=10; }
        return sum;
   }
int fenzu(int n)
    {
        weishu(n);
        for(int i=2;i<=weishu(n);i++)
        {
            int genhao(int n);int sum1=0,sum2=0;
            for(int j=1;j<i;j++)  { sum1*=10;sum1+=a[j];mark1=j; }
            for(int t=1;t<=mark1;t++)  b[t]=0;
            for(k=i;k<=weishu(n);k++)  { sum2*=10;sum2+=a[k];mark2=k; }
            for(int q=1;q<=mark2;q++)  c[q]=0;
            if(sum1!=0&&sum2!=0&&sum1!=1&&sum2!=1&&genhao(n)==1)
            { if(genhao(sum1)&&genhao(sum2))   printf("%d\n",n);    }
        }
    }
int genhao(int n)
    {
        if(!n) return 0;
                return floor(sqrt(n)+0.5)==sqrt(n)?1:0;
    }
int main()
{
    int a,b;
    scanf("%d %d",&a,&b); for(int i=a;i<=b;i++)   fenzu(i);
    return 0;
}
搜索更多相关主题的帖子: return sum for 平方 int 
2019-11-17 21:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:334
帖 子:6911
专家分:40225
注 册:2011-1-18
  得分:0 
你输入 1 1000000 不就看出你所有答案是什么了吗?
比如 361、1225、15625、105625、122500、519841 等你的程序输不出来
2019-11-18 08:52
快速回复:蓝桥杯一道题不知道为什么我的程序错了33%,有大神能帮我看下有哪里不 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.249215 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved