初来乍到


私信TA

用户名:msn1020

访问量:2079

签 名:

等  级
排  名 8424
经  验 1231
参赛次数 0
文章发表 6
年  龄 18
在职情况 学生
学  校 华科
专  业 网络工程

  自我简介:

解题思路:题目说是5位或6位,所以为了提高效率,不需要从10001-999999进行循坏,只需要从100-999即可。分别判断5位数和6位数的情况,,那么就要自定义两个函数来分别判断。

注意事项:1.注意不存在的情况!!!

              2.输出是从小到大的!!!

              3. 在自定义函数中,变量x的值通过取位后是会变化的,所以要定义一个新的变量x1来保存变量x的值。


参考代码:

# include<stdio.h>
long hws1(int n,long x)  //判断5位数的情况
{
    long hw,x1;
    int g,s,b,q,w;
    x1=x;
    b=x%10;x=x/10;
    q=x%10;x=x/10;s=q;
    w=x%10;x=x/10;g=w;
    if((g+s+b+q+w)==n){
        hw=x1*100+s*10+g;//注意不能直接hw=x*100+s*10+g  x通过取位后已经发生了变化。
        return hw;
    }
    else return x1;
}
long hws2(int n,long x)  //判断6位数的情况
{   
    long hw,x1;
    int g,s,b,q,w,sw;
    x1=x;
    q=x%10;x=x/10;b=q;
    w=x%10;x=x/10;s=w;
    sw=x%10;x=x/10;g=sw;
        if((g+s+b+q+w+sw)==n){
        hw=x1*1000+b*100+s*10+g;
        return hw;
    }
    else return x1;
}
int main()
{
    int n,gs=0;
    long i;
    scanf("%d",&n);
    for(i=100;i<=999;i++){
        if(i!=hws1(n,i)) {
            printf("%ld\n",hws1(n,i));
            gs=gs+1;
        }
    }
    for(i=100;i<=999;i++){
        if(i!=hws2(n,i)){
            printf("%ld\n",hws2(n,i));
            gs=gs+1;
        }
    }
    if(gs==0)
    printf("-1\n");   //不存在情况
    return 0;
}


 

0.0分

2 人评分

  评论区

#include<stdio.h>
#include<string>

int flag=0;

int huiwen(int a[], int sum, int n)
{
    if (sum == n)
    {
        if (a[0] != 0)
        {
            for (int j = 0; j < 3; j++)
            {
                if (a[j] != a[6 - j - 1])
                    return 0;
            }
            flag = 1;
            return 1;
        }
        else
        {
            for (int j = 1; j < 3; j++)
            {
                if (a[j] != a[6 - j])
                    return 0;
            }
            flag = 1;
            return 1;
        }

    }
    else
        return 0;
}


int main()
2022-07-08 00:41:48
  • «
  • 1
  • »