| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 543 人关注过本帖
标题:怎么也想不明白呀 请指教
只看楼主 加入收藏
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
 问题点数:0 回复次数:9 
怎么也想不明白呀 请指教

#include<iostream>
using namespace std;
int convert_10(int num ,int m);
int Solve(int data[]);
int convert_10(int num ,int m)
{
int sum=0,temp=1;
while(num>0)
{
if(num%10>=m)
{
return -1;
}
sum+=(num%10)*temp;
temp*=m;
num/=10;
}
return sum;
}
int Solve(int data[])
{
int i,j,a[3];
for(i=2;i<=16;i++)
{
int flag=1;
for(j=0;j<3;j++)
{
a[j]=convert_10(data[j],i);
if(a[j]==-1)
{
flag=0;
break;
}
}
if(flag!=0&&a[0]*a[1]==a[2])
{
return i;
}
}
return 0;
}
int main()
{
int data[3];
int n,i,answer;
cin>>n;
while(n>0)
{
for(i=0;i<3;i++)
{
cin>>data[i];
}
answer=Solve(data);
if(answer==0) break;
cout<<answer<<endl;
}
return 0;
}
区别在那里
#include<iostream>
using namespace std;
int convert_10(int num ,int m);
int Solve(int data[]);
int convert_10(int num ,int m) //转化成十进制
{
int sum=0,temp=1;
while(num>0)
{
if(num%10>=m)
{
return -1; //每一位数值比进制大
}
sum+=(num%10)*temp;
temp*=m;
num/=10;
}
return sum;
}

int Solve(int data[])
{
int i,j,a[3];
for(i=2;i<=16;i++)
{
int flag=1; //出错标记
for(j=0;j<3;j++)
{
a[j]=convert_10(data[j],i);
if(a[j]==-1) //这种情况不允许
{
flag=0;
break;
}
}
if(flag!=0&&a[0]*a[1]==a[2]) //判断是否合理
{
return i;
}
}
return 0;
}


int main()
{
int data[3];
int n,i,answer;
cin>>n;
while(n--) 问题在这里:请问n--的意思是什么怎么运行结果和上面的不同(退出情况不同)
{
for(i=0;i<3;i++)
{
cin>>data[i];
}
answer=Solve(data);
cout<<answer<<endl;
}
return 0;
}

搜索更多相关主题的帖子: 指教 
2007-10-03 22:51
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
再总结浓缩下你的问题。

Fight  to win  or  die...
2007-10-04 12:42
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
得分:0 
while(n--)  问题在这里:请问n--的意思是什么怎么运行结果和上面的不同(退出情况不同)

前世五百次的回眸 才换来今生的擦肩而过
2007-10-04 15:53
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
EX:
n = 2;
while (n--){ //仍然是2,2作条件,非0为真,执行下去,n自减==1
//再进入while n为1,非0为真,执行下去,n自减 ==0
//再进入whule n为0,为假,跳出循环
//
}



Fight  to win  or  die...
2007-10-04 16:06
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
得分:0 
那么请问可不可以把while(n--)  改的通俗易懂呢?

前世五百次的回眸 才换来今生的擦肩而过
2007-10-04 16:10
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用心剑菩提在2007-10-4 16:10:17的发言:
那么请问可不可以把while(n--) 改的通俗易懂呢?

while (n != 0){
//do sth.
n = n-1;
}


Fight  to win  or  die...
2007-10-04 16:18
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
得分:0 
谢谢啊

前世五百次的回眸 才换来今生的擦肩而过
2007-10-04 16:28
冰的热度
Rank: 2
等 级:禁止访问
威 望:5
帖 子:404
专家分:0
注 册:2006-12-2
收藏
得分:0 
不错不错.

科学是永恒之迷...... 我的博客http://blog..cn/u/1267727974 阅读我的blog,懂与不懂都是收获!
2007-10-04 17:09
夜子
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-10-2
收藏
得分:0 
这个程序在计算机上面运行后怎么都是提示三次输入,如果输入了数字,结果是0;输入字符,结果是很多0?
这个程序到底是什么用?忘赐教,我qq531586711,希望大家帮忙教我。谢谢了。国庆快乐

2007-10-05 21:23
心剑菩提
Rank: 1
等 级:新手上路
帖 子:249
专家分:0
注 册:2007-5-17
收藏
得分:0 
判断进制的程序 输入p,q,r三个数 在什么进制下p*q=r

前世五百次的回眸 才换来今生的擦肩而过
2007-10-05 21:39
快速回复:怎么也想不明白呀 请指教
数据加载中...
 
   



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

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