| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1165 人关注过本帖
标题:两个数的另类乘法,比如123*45=1*4+1*5+2*4+2*5+3*4+3*5?帮忙纠正一下错误
只看楼主 加入收藏
天谈2011
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-3-27
收藏
得分:0 
多谢大家的关注与指点啊!
2011-04-14 19:30
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:2 
回复 11楼 天谈2011
亮剑?
昨天那题调出来了,不过你下了。
//其实过程傻傻的,不过毕竟能 按两个数依照算法把结果算出.看看吧,调半天了。

#include "stdio.h"
int Pd(int Temp_Number);
void main()
{
    int Num_ber1,Num_ber2,Num_1[10],Num_2[10];
    int Count,i,Temp_10x=1;
    int m,n,Num=0;
    printf("input number1.\n");
    scanf("%d",&Num_ber1);
    printf("input number2.\n");
    scanf("%d",&Num_ber2);

    //第1个数
    Count=Pd(Num_ber1);
    i=Count;
    for(;Count>0;Count--)    Temp_10x*=10;
    Count=i;
    //第1个数分解存放。
    for(i=0;i<Count-1;i++)
    {
        Num_1[i]=(Num_ber1%Temp_10x)/(Temp_10x/10);
        Temp_10x/=10;
    }
    Num_1[i]=Num_ber1%10;
    Temp_10x=1;
    for(;Count>0;Count--)    Temp_10x*=10;
    Num_1[i+1]=Num_ber1/Temp_10x;

    //第2个数.
    Count=Pd(Num_ber2);
    i=Count;
    Temp_10x=1;
    for(;Count>0;Count--)    Temp_10x*=10;
    Count=i;
    //第2个数分解存放。
    for(i=0;i<Count-1;i++)
    {
        Num_2[i]=(Num_ber2%Temp_10x)/(Temp_10x/10);
        Temp_10x/=10;
    }
    Num_2[i]=Num_ber2%10;
    Temp_10x=1;
    for(;Count>0;Count--)    Temp_10x*=10;
    Num_2[i+1]=Num_ber2/Temp_10x;

    //i与Count分别记录10降位次数.
    i=Pd(Num_ber1);
    Count=Pd(Num_ber2);
    //计算最后两个数的值结果.
    for(m=0;m<i+1;m++)
        for(n=0;n<Count+1;n++)
            Num+=Num_1[m]*Num_2[n];
    printf("最后结果是:%d\n",Num);

}
int Pd(int Temp_Number)
{
    int i=0;
    while((Temp_Number/=10)!=0)
        i++;
    return i;
}
2011-04-14 20:24
快速回复:两个数的另类乘法,比如123*45=1*4+1*5+2*4+2*5+3*4+3*5?帮忙纠正一下 ...
数据加载中...
 
   



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

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