zoukankan      html  css  js  c++  java
  • PTA刷题笔记(C语言) | 7-42 整除光棍 (20分)

    开始刷题,感觉代码量和基础太渣了,导致数据结构不会,重头慢慢刷吧~
    在这里插入图片描述


    1、题目

    在这里插入图片描述
    输入样例:

    31

    输出样例:

    3584229390681 15


    2、代码

    #include<stdio.h>
    int main(){
    	int x;
    	scanf("%d",&x);
    	int cnt=0;
    	int a=0,c=0,d;
    	while(a<x){
    		a=a*10+1;
    		cnt++;
    	}
    	while(1){
    		printf("%d",a/x);
    		a%=x;
    		if(a==0) break;
    		a=a*10+1;
    		cnt++;
    	}
    	printf(" %d",cnt);
    	
    	return 0;
    }
    

    在这里插入图片描述

    3、讨论

    这个题很有意思的哈,本来以为就是个 “简单” 题,用循环不断乘10加1,果然有两个 test 超时了,然后,,,就没有然后了。

    #include<stdio.h>
    #include<math.h>
    int main(){
    	int x;
    	scanf("%d",&x);
    	int i;
    	int cnt=0;
    	long long int a=0,c=0,d;
    	while(1){
    		a=a*10+1;
    		cnt++;
    		c=a/x;
    		d=a%x;
    		if(d==0){
    			printf("%lld %d",c,cnt);
    			break;
    		}
    	}
    //	printf("%lld %d",c,cnt);
    	
    	return 0;
    }
    

    在这里插入图片描述
    上网一搜,发现了一个奇淫技巧,就是模拟除法的运行,即:
    在这里插入图片描述
    什么意思呢?

    就是只先生成一部分光棍数,在例子里是111,然后进行除法,相当于是从最高位开始计算结果(手写除法运算的步骤),当余数不为0,就在余数末尾加1当除数(不是加法的加,而是拼凑的意思,即1“加”1,是11)。

    妙啊!!!
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    耗油
    [深入Python]Alex Martelli的Borg类
    Python Frame objects 和Traceback objects
    2012美国汽车销量排行
    Python中统计函数的运行耗时
    Python显示函数的调用者
    Python的内置函数map
    [深入Python]简单事情复杂化:Python计算阶乘
    Solaris查看线程
    VVR常用操作
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302571.html
Copyright © 2011-2022 走看看