联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2024-10-15 09:23

CSCI1540 Fundamental Computing with C++, Fall 2024/25

Department of Computer Science and Engineering, The Chinese University of Hong Kong

Copyright © 2024 CSE, CUHK Page 1 of 2

Due: 23:59, Thu 17 Oct 2024 File name: kaprekar.cpp Full marks: 100

Introduction

The objective of this assignment is to master the use of selective and nested repetitive control flow.

You will write nested loops to look for Kaprekar numbers.

A Kaprekar number is a positive integer    if the digits of the square  

2

can be split into two parts

that add up to   , where the part formed from the low-order (rightmost) digits of  

2

must be nonzero

(although leading zeroes are allowed in the part). For example, 45 is a Kaprekar number,

because 45

2 = 2025 can be split into two parts 20 and 25, with 20 + 25 = 45. As another example,

999 is also a Kaprekar number, because 999

2 = 998001 and 998 + 001 = 999. (Note the loworder

part 001 includes leading zeroes.) However, 31 is not a Kaprekar number, because all three

possible splits of 31

2 = 961 are no good (96 + 1 ≠ 31, 9 + 61 ≠ 31, and 0 + 961 ≠ 31).

Program Specification

The program shall ask for two user inputs    and   . They are assumed to be always integers. You are

required to use the data type long long instead of int for all integer variables in this assignment,

because a square can easily go overflow with (that is, larger than the upper bound of) the int type.

1. The program first prompts the user to enter an integer   . When    is not positive, you shall

display a warning message and ask for another input, until    is positive. Your program shall look

for Kaprekar number(s) greater than or equal to   .

2. Then prompt the user to enter how many Kaprekar numbers the user is looking for. When this

input    is not positive, display a warning message and ask for another input, until    is positive.

3. After validating inputs    and   , repeatedly test   ,    + 1,    + 2,    + 3, … to check whether it is a

Kaprekar number. If so, print out the square and the split of the two parts. (See the upcoming

Sample Runs section for the printing format.) Repeat these checks until    Kaprekar numbers are

found and printed. Then program execution ends.

➢ To check whether a number    is a Kaprekar number, you progressively check all possible

splits of  

2

. E.g., let    = 345 and hence  

2 = 119025. The first split to check is 11902 and

5; the next split is 1190 and 25; the next split is 119 and 025; and so on.

Note: In this assignment, you are not allowed to: (1) use any functions in the <cmath> library, (2)

write any functions other than main(), and (3) use any arrays/vectors (which are not yet taught).

Sample Runs

In the following sample runs, the blue text is user input and the other text is the program printout.

You can try the provided sample program for other input. Your program output should be exactly the

same as the sample program (same text, symbols, letter case, spacings, etc.). Note that there is a

space after the ‘:’ and ‘?’ in the program printout. CSCI1540 Fundamental Computing with C++, Fall 2024/25

Department of Computer Science and Engineering, The Chinese University of Hong Kong

Copyright © 2024 CSE, CUHK Page 2 of 2

Enter an integer: 40↵

How many Kaprekar numbers? 3↵

45^2 = 2025

20 + 25 = 45

55^2 = 3025

30 + 25 = 55

99^2 = 9801

98 + 1 = 99

Enter an integer: -23↵

Input must be +ve! Enter again.

Enter an integer: -1↵

Input must be +ve! Enter again.

Enter an integer: 0↵

Input must be +ve! Enter again.

Enter an integer: 200↵

How many Kaprekar numbers? 0↵

Input must be +ve! Enter again.

How many Kaprekar numbers? 0↵

Input must be +ve! Enter again.

How many Kaprekar numbers? -777↵

Input must be +ve! Enter again.

How many Kaprekar numbers? 5↵

297^2 = 88209

88 + 209 = 297

703^2 = 494209

494 + 209 = 703

999^2 = 998001

998 + 1 = 999

2223^2 = 4941729

494 + 1729 = 2223

2728^2 = 7441984

744 + 1984 = 2728

Submission and Marking

• Your program file name shall be kaprekar.cpp. Submit the file in Blackboard

(https://blackboard.cuhk.edu.hk/).

• Insert your name, student ID, and e-mail as comments at the beginning of your source file.

• You can submit your assignment multiple times. Only the latest submission counts.

• Your program should be free of compilation errors and warnings.

• Your program should include suitable comments as documentation.

• Do NOT share your work to others and do NOT plagiarize. Both senders and plagiarists shall be

penalized.


相关文章

版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp