1. 程式人生 > >L1-046 整除光棍(20 分)豎式除法分析

L1-046 整除光棍(20 分)豎式除法分析

這裡所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。
比如,111111就可以被13整除。 現在,你的程式要讀入一個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字:
第一個數字s,表示x乘以s是一個光棍,第二個數字n是這個光棍的位數。這樣的解當然不是唯一的,題目要求你輸出最小的解。
提示:一個顯然的辦法是逐漸增加光棍的位數,直到可以整除x為止。但難點在於,s可能是個非常大的數 —— 
比如,程式輸入31,那麼就輸出3584229390681和15,因為31乘以3584229390681的結果是111111111111111,一共15個1。
輸入格式:
輸入在一行中給出一個不以5結尾的正奇數x(< 1000)。
輸出格式:
在一行中輸出相應的最小的s和n,其間以1個空格分隔。
輸入樣例:
31
輸出樣例:
3584229390681 15

分析:

題目實際上是求各個位全為1的數被輸入數x除盡後的商的最小值,由於商可能過大,故採用模擬豎式除法的方式求出商的各個位並輸出。顯然,除數為x,被除數一開始需要在末位不斷添1直到被除數不小於除數,才開始求商。求出第一個商後求餘數,若餘數為0說明運算結束,否則在餘數末位添1,重複上述求商過程。

程式碼:

#include<iostream>
using namespace std;
int main()
{
	int x,s=0,n=0;//定義除數,被除數,位數 
	cin>>x;
	while(s<x)
	{
		s=s*10+1;//被除數末位添1直到不小於被除數 
		n++;//位數增1 
	}
	while(true)//開始進行除法運算 
	{
		cout<<s/x;//輸出商 
		s%=x;//被除數更新為餘數 
		if(s==0)break;//餘數為0則結束 
		s=s*10+1;//餘數末位添1
		n++;//位數增1 
	}
	cout<<' '<<n;
	return 0;
}

相關推薦

L1-046 整除光棍20 除法分析

這裡所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。 比如,111111就可以被13整除。 現在,你的程式要讀入一個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩

7-4 整除光棍20

7-4 整除光棍(20 分) 這裡所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入一個整數x,這個整數一定是奇數並且不以5

7-8 整除光棍20 (模擬除法)

題目描述: 7-8 整除光棍(20 分) 這裡所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入一個整數

PTA 中M2018秋C入門和進階練習 7-42 整除光棍 20

7-42 整除光棍 (20 分) 這裡所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。比如,111111

7-42 整除光棍 20

這裡所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入一個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字:第一個數字s,

7-42 整除光棍20

這裡所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入一個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出

【PTA 天梯賽】L1-046 整除光棍除法模擬

模擬 提示 spa 說明 otto tex esp -o ++ 這裏所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。比如,111111就可以被13整除。

【JAVA】團體程式設計天梯賽 L1-002 列印沙漏 20

[JAVA] L1-002 列印沙漏 (20 分) 原題連結 本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1

PTA天梯賽練習集 L1-023 輸出GPLT 20

題目描述: 給定一個長度不超過10000的、僅由英文字母構成的字串。請將字元重新調整順序,按GPLTGPLT…這樣的順序輸出,並忽略其它字元。當然,四種字元(不區分大小寫)的個數不一定是一樣多的,若某種字元已經輸出完,則餘下的字元仍按GPLT的順序列印,直到所有

PTA天梯賽練習集 L1-006 連續因子 20

一個正整數 N 的因子中可能存在若干連續的數字。例如 630 可以分解為 3×5×6×7,其中 5、6、7 就是 3 個連續的數字。給定任一正整數 N,要求編寫程式求出最長連續因子的個數,並輸出最小的連續因子序列。 輸入格式: 輸入在一行中給出一個正整數 N(1

PTA天梯賽練習集 L1-011 A-B 20

本題要求你計算A−B。不過麻煩的是,A和B都是字串 —— 即從字串A中把字串B所包含的字元全刪掉,剩下的字元組成的就是字串A−B。 輸入格式: 輸入在2行中先後給出字串A和B。兩字串的長度都不超過10^4 ​​ ,並且保證每個字串都是由可見的ASCII碼和空白字

L1-039 古風排版 20 java

L1-039 古風排版 (20 分) import java.util.Scanner; /* * *@author 曹家偉 * */ public class Main { public static void main(String[] args) {

PTA天梯賽練習集 L1-034 點贊 20

題目描述: 微博上有個“點贊”功能,你可以為你喜歡的博文點個贊表示支援。每篇博文都有一些刻畫其特性的標籤,而你點讚的博文的型別,也間接刻畫了你的特性。本題就要求你寫個程式,通過統計一個人點讚的紀錄,分析這個人的特性。 輸入格式: 輸入在第一行給出一個正整數N(≤

PTA 團體程式設計天梯賽-練習集 L1-034 點贊20 C語言

L1-034 點贊(20 分) 微博上有個“點贊”功能,你可以為你喜歡的博文點個贊表示支援。每篇博文都有一些刻畫其特性的標籤,而你點讚的博文的型別,也間接刻畫了你的特性。本題就要求你寫個程式,通過統計一個人點讚的紀錄,分析這個人的特性。 輸入格式: 輸入在第一行給出一個

L1-023 輸出GPLT 20

小寫 urn 所有 輸出 gpl 區分大小寫 ctc stdio.h ber L1-023 輸出GPLT (20 分) 給定一個長度不超過10000的、僅由英文字母構成的字符串。請將字符重新調整順序,按GPLTGPLT....這樣的順序輸出,並忽略其它字符。當然,四種字符(

L1-049 天梯賽座位分配 20

數量 策略 輸出 () include main for 最大的 出現 這道題是我在參加天梯賽的時候出現的題,當時就沒有做出來,然後就一直擱置了起來,前幾天內部測試的時候又出現了,我還是沒做出來,然後我就研究了一下,看了看別人的答案,才恍然大悟; 下面是題目: L1-049

PTA天梯賽練習集 L1-027 出租 20

題目描述: 一時間網上一片求救聲,急問這個怎麼破。其實這段程式碼很簡單,index陣列就是arr陣列的下標,index[0]=2 對應 arr[2]=1,index[1]=0 對應 arr[0]=8,index[2]=3 對應 arr[3]=0,以此類推…… 很

L1-027 出租 20 java

L1-027 出租 (20 分) import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Mai

L1-020 帥到沒朋友 20

當芸芸眾生忙著在朋友圈中發照片的時候,總有一些人因為太帥而沒有朋友。本題就要求你找出那些帥到沒有朋友的人。 輸入格式: 輸入第一行給出一個正整數N(≤100),是已知朋友圈的個數;隨後N行,每行首先給出一個正整數K(≤1000),為朋友圈中的人數,然後列出一個朋友圈內的所有人——為方便起見,

習題3.8 符號配對20 浙大版《數據結構第2版》題目集

檢查 size pro 是否 ring 所有 編寫 bre ace 請編寫程序檢查C語言源程序中下列符號是否配對:/*與*/、(與)、[與]、{與}。 輸入格式: 輸入為一個C語言源程序。當讀到某一行中只有一個句點.和一個回車的時候,標誌著輸入結束。程序中需要檢