C语言 神奇算式。求大神解答!!!

问题描述

C语言 神奇算式。求大神解答!!!

标题:神奇算式

由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。

比如:

210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187

解决方案

http://zhidao.baidu.com/link?url=auHsWuamEqBq75Cug4hLrZnoWupqp1H_DLpBxCwmcDJOc2xpCf7ekRWx_YuGqDPp-uuj84RKKPGWeFlPA_UK4BZihp7FBQx3KsA884nXW4O

解决方案二:

http://codepad.org/FBzE5RKb

6 * 201 = 1206
6 * 210 = 1260
21 * 60 = 1260
15 * 93 = 1395
35 * 41 = 1435
3 * 501 = 1503
3 * 510 = 1530
30 * 51 = 1530
21 * 87 = 1827
27 * 81 = 2187
9 * 351 = 3159
8 * 473 = 3784

解决方案三:

 #include <iostream>
using namespace std;
int main()
{
    int count=0;
    int i,j,d,sum;
    for(i=1;i<999;i++){
            int a[10]={0};
            int b=i;
            while(b!=0){
                a[b%10]=1;
                b=b/10;
            }
        for(j=1;j<999;j++){
            int e[10]={0};
            int c=j;
            while(c!=0){
                e[c%10]=1;
                c=c/10;
            }
            sum=i*j;
            d=sum;
            if(d>=1000&&d<=9999){
            while(d!=0){
                if(a[d%10]==0||e[d%10]==0)
                    break;
                else
                    d=d/10;
            }
        }
        else
            continue;
        if(d==0)
            count++;
        }
    }
    cout<<count<<endl;
    return 0;
}

解决方案四:

#include
using namespace std;
int main()
{
int count=0;
int i,j,d,sum;
for(i=1;i
int a[10]={0};
int b=i;
while(b!=0){
a[b%10]=1;
b=b/10;
}
for(j=1;j
int e[10]={0};
int c=j;
while(c!=0){
e[c%10]=1;
c=c/10;
}
sum=i*j;
d=sum;
if(d>=1000&&d<=9999){
while(d!=0){
if(a[d%10]==0||e[d%10]==0)
break;
else
d=d/10;
}
}
else
continue;
if(d==0)
count++;
}
}
cout<<count<<endl;
return 0;
}

解决方案五:

是要找出所有的神奇算式?可以将两个乘数的元素存入一个到一个字符串里面,然后得出它们的乘积,再去看乘积是否和之前那个字符串里面的元素完全一致就OK了

时间: 2024-11-16 16:08:21

C语言 神奇算式。求大神解答!!!的相关文章

c语言问题-小白c语言求教,求大神解答

问题描述 小白c语言求教,求大神解答 #include int main(void) { int years,days; years=21; days=years*365; printf(" The years is %d. The days are %d. ".years,days); Return 0; } 程序无法运行,提示错误.求大神解答.小弟在这里先谢谢啦. 解决方案 printf(" The years is %d. The days are %d. "

c语言的问题求大神解答!!1

问题描述 c语言的问题求大神解答!!1 #include"stdio.h" #include"time.h" #include"stdlib.h" void main() { clock_t start,over; double time; int k=42,a=0; char ch='a'; start=clock(); scanf("%d",&a); leap:while(a!=k) { if(a>k) pr

c语言-一道acmC语言题目,求大神解答

问题描述 一道acmC语言题目,求大神解答 描述国庆前每日一弹其中一道题是一个递推公式:f(n)=f(n-1)+f(n-2).现在已知f(1)=1f(2)=1.现在请你设计一个程序计算第n项对520取余的值(%520). 输入多组输入:对于每组输入:只有一行,一个n(0<n≤10^9),表示第n项.输出输出f(n)%520的值.样例输入 解决方案 如果有a = b+c,那么有a%520 = (b%520 + c%520)%520,可以照这样递推上去吧.不会溢出,就是不知道时间会不会超时. 解决方

c语言编程问题 求大神解答

问题描述 c语言编程问题 求大神解答 Maximum number ? Write a program that outputs maximum and minimum number in 10 random numbers ? Range of the random number is 1-1000 ? Use the for loop 例子) 400 509 392 949 667 606 364 338 120 441 Maximum number is 996 Minimum numbe

c语言难题,求大神解答

问题描述 c语言难题,求大神解答 键盘输入一个正整数n(10-20之间). ? 构造单链表, 单链表的结点数目为输入的n(不包括 head结点). – 每个结点的data域的内容是随机产生的整数. ? 显示单链表的内容. ? 编写函数listMax, 找出数值最大的结点, 并显示其 位置及数值. 解决方案 答案http://zhidao.baidu.com/link?url=ePhP4ab-SCLlXgn5grSdoDJ3u_Q8VSnD9QZlwz0MluVN6eLYg6xyQKHcnZRTX

c语言 c++-c语言求大神解答,一个数组的基础问题

问题描述 c语言求大神解答,一个数组的基础问题 数组的地址是什么?是不是就是数组名,也就是第一个元素的地址,也就是这个数组的首地址? 解决方案 数组名可以当成指向数组首元素的地址使用. 例如:int a[10]; 可以通过: cout<<*a<<endl; //来输出数组a中的第一个元素. cout<<*(a + i)<<endl; //来输出数组中的第i个元素. 下面两个输出的地址值也是相同的. printf("--->%pn",

c语言-C语言版非递归马踏棋盘·死循环了·求大神解答·小弟新手求助

问题描述 C语言版非递归马踏棋盘·死循环了·求大神解答·小弟新手求助 这是出现死循环的代码bool solution(Move move, Pos &beginPos){ if(!move) { printf("solution Failed!"); return false; } int chessBoard[8][8] = {0}; push(move, beginPos); chessBoard[beginPos.mX][beginPos.mY] = 1; int ste

编程c语言-用c语言带入已知数求多项式,这样不对,求大神解答

问题描述 用c语言带入已知数求多项式,这样不对,求大神解答 已知y0,y1,y3,y4,x0,x1,求abcd然后再求h,这样写对吗,不对应该怎么写 解决方案 最后的printf%s都改成%f 解决方案二: 输入值后没反应,怎么回事 解决方案三: 换行输入试试,弹出后换行.. 解决方案四: 你的abcdh的类型是float,输出float类型的变量要用%f,%s是输出字符串类型的 解决方案五: 最后格式符用错了,s是字符串的,应该用f.还有main实际是不规范的,尽量写int main吧,加个返

c语言基础问题,求大神解答

问题描述 c语言基础问题,求大神解答 输入10个整数,使其各数顺序向后移动m个位置,如1.2.3.4.5.6.7.8.9.10移动后为7.8.9.10.1.2.3.4.5.6 解决方案 用循环,对1--8的数据向后移,0,9号数据单独考虑 解决方案二: 百度上有个算法,你试试效率怎么样 void Reverse(int *arr, int b, int e) { for(; b < e; b++, e--) { int temp = arr[e]; arr[e] = arr[b]; arr[b]