| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1123 人关注过本帖
标题:想了半天~还是没有一点思路!!!
只看楼主 加入收藏
bccn_0934
Rank: 2
等 级:论坛游民
帖 子:35
专家分:56
注 册:2011-5-9
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:21 
想了半天~还是没有一点思路!!!
键盘输入一个一位数的不成立的等式,
当移动一根火柴后,如果能使等式成立,则输出成立的等式,否则输出“无解”。
搜索更多相关主题的帖子: 键盘 移动 
2011-06-22 23:14
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:2 
火柴可以旋转不?
2011-06-22 23:34
bccn_0934
Rank: 2
等 级:论坛游民
帖 子:35
专家分:56
注 册:2011-5-9
收藏
得分:0 
回复 2楼 voidx
可以的
2011-06-22 23:58
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:2 
楼主举个例子吧
2011-06-23 06:37
bccn_0934
Rank: 2
等 级:论坛游民
帖 子:35
专家分:56
注 册:2011-5-9
收藏
得分:0 
回复 4楼 hjywyj
2=3   移动后  3=3 2=2
1=2      无解
6=0   移动后  0=0 或 6=6
5=3    移动后 5=5 或3=3

应该就是这样的吧


2011-06-23 13:00
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
啊,这个就简单了。
楼主搞个数组,存储每个数字所能够转换成的所有数字,然后看 '=' 后面的数字能不能由 '=' 前面的数字转换成就可以了
其实就是个搜索
2011-06-23 13:17
bccn_0934
Rank: 2
等 级:论坛游民
帖 子:35
专家分:56
注 册:2011-5-9
收藏
得分:0 
穷举   这种方法对不对啊
#include "stdio.h"
main()
{
 int m,n;
 printf("输入两个一位数:");
 scanf("%d %d",&m,&n);
 printf("不成立的等式:%d=%d\n",m,n);
 if(m==0)
 {
  if(n==6||n==9)
      printf("移动后:%d=%d %d=%d\n",m,m,n,n);
  else printf("无解\n");
 }
 if(m==3)
 {
  if(n==2||n==5)
       printf("移动后:%d=%d %d=%d\n",m,m,n,n);
   else printf("无解\n");
 }
  if(m==6)
 {
  if(n==0)
       printf("移动后:%d=%d %d=%d\n",m,m,n,n);
   else printf("无解\n");
 }
   if(m==9)
 {
  if(n==0||n==6)
       printf("移动后:%d=%d %d=%d\n",m,m,n,n);
   else printf("无解\n");
 }
    if(m==2)
 {
  if(n==3)
       printf("移动后:%d=%d %d=%d\n",m,m,n,n);
   else printf("无解\n");
 }
     if(m==5)
 {
  if(n==3)
       printf("移动后:%d=%d %d=%d\n",m,m,n,n);
   else printf("无解\n");
 }
     if(m==1||m==4||m==7||m==8) printf("无解\n");
}


[ 本帖最后由 bccn_0934 于 2011-6-23 13:53 编辑 ]
2011-06-23 13:28
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 5楼 bccn_0934
不明白是怎么移动的。1=2为什么无解?1=1,2=2不行?
楼主这是怎么移动的?
2011-06-23 14:25
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
程序代码:
#include <stdio.h>

int main() {
    char d[10][10] = {
        {1, 0, 0, 0, 0, 0, 1, 0, 0, 1},
        {0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
        {0, 0, 1, 1, 0, 1, 0, 0, 0, 0},
        {0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
        {0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
        {1, 0, 0, 0, 0, 0, 1, 0, 0, 1},
        {0, 0, 0, 0, 0, 0, 0, 1, 0, 0},
        {0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
        {1, 0, 0, 0, 0, 0, 1, 0, 0, 1}};
    int a = 0, b = 0;
    printf("Please give me an equation of 2 1-digit natural numbers,\nwhich does not hold in this format: a = b\n> ");
    while (scanf("%d = %d", &a, &b) < 2 || a < 0 || a > 9 || b < 0 || b > 9) {
        while (getchar() != '\n');
        printf("\nYour input is not valid, re-input\n> ");
    }
    printf("\n");
    if (d[a][b]) {
        printf("%d = %d\n", b, b);
    }
    if (d[b][a]) {
        printf("%d = %d\n", a, a);
    }
    if (!d[a][b] && !d[b][a]) {
        printf("No solution.\n");
    }
    return 0;
}


[ 本帖最后由 voidx 于 2011-6-23 14:52 编辑 ]
2011-06-23 14:50
youngpennyu
Rank: 2
等 级:论坛游民
帖 子:37
专家分:19
注 册:2011-6-13
收藏
得分:2 
回复 8楼 hjywyj
请把数字看成电子时钟的形状~~
2011-06-23 15:27
快速回复:想了半天~还是没有一点思路!!!
数据加载中...
 
   



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

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