| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4751 人关注过本帖
标题:某四位数的千位数与十位数之和等于百位与个位的积,求所有这样四位数的和?
只看楼主 加入收藏
ghgth
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-23
收藏
 问题点数:0 回复次数:8 
某四位数的千位数与十位数之和等于百位与个位的积,求所有这样四位数的和?
某四位数的千位数与十位数之和等于百位与个位的积,求所有这样四位数的和?

那位达人帮忙算一下 谢谢
搜索更多相关主题的帖子: 位数 之和 
2008-11-23 09:32
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
嗯..有好几种算法,我用最简单的一种,不过效率慢了一点..
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main(void){
  int a,b,c,d,i=0;
  for(a=1;a<=9;a++)          /*从1开始,千位数第一个不可能是0,所以写1*/
    for(b=0;b<=9;b++)        /*百位十位个位都需要注意一下,这里需要写0,1000就是一个最好不过的例子了*/
      for(c=0;c<=9;c++)
        for(d=0;d<=9;d++)
          if(a+c==b*d){
            printf("%d %d %d %d    ",a,b,c,d);
            i++;
            if(i%7==0)
              printf("\n");
          }
  printf("\n一共有%d组.",i);
  getch();
  return 0;
}


得了..就当作抛砖引玉把..我就是那砖....希望玉早日出来..

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-23 09:46
alweeq86
Rank: 2
等 级:论坛游民
帖 子:67
专家分:20
注 册:2008-9-14
收藏
得分:0 
printf("%d %d %d %d    ",a,b,c,d);
感觉不舒服
可以改成:printf("%d",a*1000+b*100+c*10+d);
这样输出的结果看起来要好点
2008-11-23 10:52
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1685
专家分:4252
注 册:2007-12-27
收藏
得分:0 
回复 第2楼 zqy110007 的帖子
求所有这样四位数的和
不是显示所有这样的四位数
不妨再改改?

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2008-11-23 12:44
jdh99
Rank: 2
来 自:南师大
等 级:论坛游民
威 望:1
帖 子:59
专家分:15
注 册:2008-11-7
收藏
得分:0 
先顶ls
抛个砖 大家指正
#include<stdio.h>
#include<stdlib.h>
/*思想:将数据转为字符串操作*/
main()
{
    int i;
    char str[5];
    char *p=str;
    
    for(i=1000;i<10000;i++)
    {
        itoa(i,p,10);
        if((*p - 48) + (*(p + 2) - 48) == (*(p + 1) - 48) * (*(p + 3) - 48))//将0-9的ASCII码转为对应的值
        {
            puts(p);
        }
    }
}
输出:
1101
1112
1123
1134
1145
1156
1167
1178
1189
1211
1232
1253
1274
1295
1321
1352
1383
1431
1472
1541
1592
1651
1761
1871
1981
2102
2113
2124
2135
2146
2157
2168
2179
2201
2222
2243
2264
2285
2311
2342
2373
2421
2462
2531
2582
2641
2751
2861
2971
3103
3114
3125
3136
3147
3158
3169
3212
3233
3254
3275
3296
3301
3332
3363
3394
3411
3452
3493
3521
3572
3631
3692
3741
3851
3961
4104
4115
4126
4137
4148
4159
4202
4223
4244
4265
4286
4322
4353
4384
4401
4442
4483
4511
4562
4621
4682
4731
4841
4951
5105
5116
5127
5138
5149
5213
5234
5255
5276
5297
5312
5343
5374
5432
5473
5501
5552
5611
5672
5721
5792
5831
5941
6106
6117
6128
6139
6203
6224
6245
6266
6287
6302
6333
6364
6395
6422
6463
6542
6593
6601
6662
6711
6782
6821
6931
7107
7118
7129
7214
7235
7256
7277
7298
7323
7354
7385
7412
7453
7494
7532
7583
7652
7701
7772
7811
7892
7921
8108
8119
8204
8225
8246
8267
8288
8313
8344
8375
8402
8443
8484
8522
8573
8642
8762
8801
8882
8911
9109
9215
9236
9257
9278
9299
9303
9334
9365
9396
9433
9474
9512
9563
9632
9693
9752
9872
9901
9992
Press any key to continue

作鲲鹏,遨游于天地沧海
2008-11-23 13:17
jdh99
Rank: 2
来 自:南师大
等 级:论坛游民
威 望:1
帖 子:59
专家分:15
注 册:2008-11-7
收藏
得分:0 
sorry 字符太长了 不该刷屏。。

作鲲鹏,遨游于天地沧海
2008-11-23 13:18
biancheng1998
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-11-30
收藏
得分:0 
#include<stdio.h>
void main()
{
   int a,b,c,d,sum=0;
   for(int i=1000;i<10000;i++)
    
   {
       a=i/1000;
   b=(i-a*1000)/100;
   c=(i-a*1000-b*100)/10;
   d=i%10;
if((a+c)==(b*d))
sum=sum+i;
   }
   printf("%d",sum);
}
结果是:1078289
2008-12-02 09:41
biancheng1998
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-11-30
收藏
得分:0 
结果可能存在问题,把sum=0定义为长整型就没问题了,刚没注意到.
2008-12-02 09:43
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用zqy110007在2008-11-23 09:46的发言:

嗯..有好几种算法,我用最简单的一种,不过效率慢了一点..
#include
#include
int main(void){
  int a,b,c,d,i=0;
  for(a=1;a


数据规模这么小,就应该选择这种算法

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2008-12-02 12:37
快速回复:某四位数的千位数与十位数之和等于百位与个位的积,求所有这样四位数的 ...
数据加载中...
 
   



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

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