HDU 4207 And SOJ 4198 Grade School Multiplication

原创 2013年12月03日 14:52:09

模拟乘法,注意格式,在HDU,G++提交用__int64 在SOJ用long long型提交,这个把我坑了,格式也很坑。

#include <iostream>
#include<cstdio>
typedef __int64 LL;
using namespace std;

int get_digit(LL n)
{
    int k=0;
    if(n==0) return 1;
    while(n){
        n/=10;
        k++;
    }
    return k;
}

void print(LL n,int k)
{
    for(int i=0;i<k;i++) printf(" ");
    printf("%I64d",n);
}

bool Multi(LL x,LL y,int n,int n2)
{
    int D=0,D1=0,g,k;
    LL ans;
    while(y){
        D++;
        g=y%10;
        y=y/10;
        while(g==0){
            D1++;
            D++;
            g=y%10;
            y=y/10;
        }
        if(D1==n2-1) return 1;
        ans=x*g;
        k=get_digit(ans);
        if(ans>0){
		 print(ans,n-k-D+1);
         for(int i=0;i<D1;i++) printf("0");
         D1=0;
         puts("");
        }
    }
    return 0;
}

int main()
{
    int n1,n2,m;
    LL s,t;
    LL ans;
    int T=1;
    while(scanf("%I64d %I64d",&s,&t),s||t){
		n1=get_digit(s),n2=get_digit(t);
        ans=s*t;
        m=get_digit(ans);
        printf("Problem %d\n",T++);
        print(s,m-n1);puts("");
        print(t,m-n2);puts("");
        for(int i=0;i<m;i++){
            printf("-");
        }
        puts("");
        if(t==0){
            puts("0");
            continue;
        }
        else if(n2>1){
            if(!Multi(s,t,m,n2)){
             for(int i=0;i<m;i++) printf("-");
             puts("");
            }
        }
        printf("%I64d\n",ans);
    }
    return 0;
}



SOJ 题目分类

-----------------------------最优化问题-------------------------------------  ----------------------常规动态...
  • lh842824672
  • lh842824672
  • 2013年09月25日 11:43
  • 1448

hdu 4198 优先队列

E - E Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Pr...
  • HowardEmily
  • HowardEmily
  • 2016年10月28日 18:47
  • 302

[c/c++/OC]高质量的面试题及答案及注解

一、  选择题 1. 声明语句为int a[3][4]; 下列表达式中与数组元素a[2][1]等价的是(  )。 A、*(a[2]+1)      B、a[9]   C、*(a[1]+2)     ...
  • s10141303
  • s10141303
  • 2013年10月08日 16:44
  • 5824

Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用)

什么你还在用 Eclipse 进行 Android 开发,不要吧。。。。 Google 都已经将 Android Studio 设置为默认推荐工具了,还不赶紧使用。 But at first, 不...
  • kifile
  • kifile
  • 2014年12月11日 22:29
  • 2979

更新AndroidStudio 遇到的Grade问题

Android Studio 2.3已经发布了 相信各位小伙伴们也已经迫不及待的升级到2.3 今天早上打开android Studio 也收到了升级通知 一大堆英文 无非...
  • qq_24697659
  • qq_24697659
  • 2017年07月17日 00:14
  • 764

升级android studio2.0后, build grade running速度太慢,完美解决!

升级android studio2.0后, build grade running速度太慢,完美解决....
  • fyj568213959
  • fyj568213959
  • 2016年04月13日 14:25
  • 3950

使用Gradle构建Java项目

译文出处: 字节技术   原文出处:spring.io 使用Gradle构建Java项目 这个手册将通过一个简单的Java项目向大家介绍如何使用Gradle构建Java项目。 我们将...
  • jueane
  • jueane
  • 2016年01月07日 15:57
  • 3284

SOJ 射击游戏递推解法

题目描述 小明很喜欢玩射击游戏。这周末,他完成了数据结构作业之后,又来到了射击娱乐场。他从老板那租了一把步枪和装有N发子弹的弹夹。注意:所有的子弹都从枪口上膛。在射击的过程中,小明每次都有两...
  • mo_hui_tou
  • mo_hui_tou
  • 2018年01月05日 16:46
  • 75

字符串系列——自动物理题

Artificial Intelligence?  Physics teachers in high school often think that problems giv...
  • hcbbt
  • hcbbt
  • 2013年03月07日 23:14
  • 1338

JAVA中的四种JSON解析方式详解

我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式。 1、JSON原生 2、GSON 3、FastJSON 4、jackson...
  • u014332200
  • u014332200
  • 2017年08月02日 10:52
  • 630
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 4207 And SOJ 4198 Grade School Multiplication
举报原因:
原因补充:

(最多只允许输入30个字)