吉林大学超星MOOC学习通高级语言程序设计 C++ 实验03 模块化程序设计(2024级)

一. 单选题(共1题,16.6分) 

1. (单选题)

有函数定义:int f(int x,int y);则下列函数调用正确的为(    )

  • A.int n; n=f();
  • B. int n,a=0,b=1;n=int f(x,y);
  • C. int n,a=0,b=1;n=f(a,b);
  • D.int n,a=0,b=1; n=f(int a,int b);

我的答案: C

 二. 程序题(共5题,83.4分)

2. 自守数

题目编号:Exp03-Extend01,GJBook3-12-04

题目名称:自守数

题目描述:若一个正整数a满足条件 a^2 的尾数等于a,则称a为自守数,例如:

25^2=625 、76^2=5776 、9376^2=87909376 都是自守数。

编写程序,求小于等于n的所有自守数。

输入:从键盘随机输入一个正整数n(<10000000)。

输出:输出小于n的所有自守数,每个数之间以一个西文空格间隔。
 

样例1:

输入:10
输出:1 5 6

样例2:

输入:100
输出:1 5 6 25 76

#include <iostream>

using namespace std;

int main()
{
	int n = 0;
	cin >> n;
	long long x = 0;
	cout << "1 ";
	for (int i = 2;i < n;i++)
	{		
		int j = 10000000;
		x = i * i;
		while (j / i >= 10)
		{
			j /= 10;
		}
		x %= j;
		if (x == i)
			cout << i << " ";
	}
	return 0;
}

谈一谈对这个题的想法:x=a*a

1.首先,厘清题目对 “自首数”的定义

2.其次,题目的关键在于如何寻找x的尾数

下面重点来讲第二点:仔细思考后会发现,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大嘤三喵军团

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值