您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 小学数学老师想用编程来做这道题不会做

小学数学老师想用编程来做这道题不会做

来源:网络整理     时间:2016/7/29 20:27:36     关键词:

关于网友提出的“ 小学数学老师想用编程来做这道题不会做”问题疑问,本网通过在网上对“ 小学数学老师想用编程来做这道题不会做”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 小学数学老师想用编程来做这道题不会做
描述:

我想做这样一道数学题一个三位数乘一个两位数,结果是一个四位数,上面用到的9个数字是各不相同的,但必须是1~9这9个数,请问这个三位数是几?两位数是几,我想用编的方法来解答这个题.
本人是一名小学教师,水平有限,还望高手写出源代码.


解决方案1:

忘了把0除去 再发一遍
#include
#include
using namespace std;
int judgebit(int n)//判断一个数的位数
{   
if(n<10) return 1;
    else return judgebit(n/10)+1;
}
int buffer[10];
int judgediffer(int num)//判断该数是否含0或相同数字
{   
int k=0;
for(int i=num;i;i/=10)
{
 for(int j=0;j<>
 {
 if(buffer[j]==i%10)
   return 0;
 }
  if(i%10==0)
   return 0;
 buffer[k++]=i%10;
}
  return 1;
}
int arr1[2];int arr2[3];int arr3[4];int arr[9];int s;
int judgetwo(int a,int b)//判断两个数与乘积中是否有相同的数
{   
    if(judgebit(a*b)!=4) return 0;
if(!judgediffer(a)) return 0;
if(!judgediffer(b)) return 0;
if(!judgediffer(a*b)) return 0;
s=a*b;
    for(int i=0;i<2;i++,a/=10)
{
arr1[i]=a%10;
}
    for(int j=0;j<3;j++,b/=10)
{
arr2[j]=b%10;
}
for(int t=0;t<4;t++,s/=10)
{
arr3[t]=s%10;
}
int m=0;
for(i=0;i<2;i++)
     arr[m++]=arr1[i];
    for(i=0;i<3;i++)
     arr[m++]=arr2[i];
    for(i=0;i<4;i++)
     arr[m++]=arr3[i];
    for(i=0;i<>
  for(j=i+1;j<>
  {
   if(arr[i]==arr[j])
   return 0;
  }
return 1;
}
void main()
{
for(int i=10;i<=99;i++)
{
  for(int j=100;j<=999;j++)
  {
   if(judgetwo(i,j))
   {
   cout<<><><>
   cout<<>
   }
  }
}
   
}

解决方案2:

#include 
#include 
#include 
int main(int argc, _TCHAR* argv[])
{
    std::vector numbers;
    numbers.push_back(1);
    numbers.push_back(2);
    numbers.push_back(3);
    numbers.push_back(4);
    numbers.push_back(5);
    numbers.push_back(6);
    numbers.push_back(7);
    numbers.push_back(8);
    numbers.push_back(9);
    do
    {
        int muler3 = numbers[0] * 100 + numbers[1] * 10 + numbers[2];
        int muler2 = numbers[3] * 10 + numbers[4];
        int amass  = numbers[5] * 1000 + numbers[6] * 100 + numbers[7] * 10 + numbers[8];
        if(muler3 * muler2 == amass)
        {
            std::cout<<><><><>
        }
    } while(std::next_permutation(numbers.begin(), numbers.end()));
return 0;
}


以上介绍了“ 小学数学老师想用编程来做这道题不会做”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3010291.html

相关图片

相关文章