博客
关于我
1063 计算谱半径 (20 分)
阅读量:568 次
发布时间:2019-03-09

本文共 890 字,大约阅读时间需要 2 分钟。

1063 计算谱半径

为了解决这个问题,我们需要计算给定点集的谱半径。谱半径是所有点到原点的距离中的最大值。通过对给定的点坐标进行计算,我们可以找到这个最大距离,然后取其平方根作为最终结果。

### 输入样例 我们需要输入多组点的坐标,计算每组点的平方距离,然后找到最大的平方距离,其开平方即为谱半径。输入样例如下:

5
0 1
2
0 -1
-1
0 0
3
3 3
0
-3 0

### 输出样例 经过计算,可以得到最大谱半径为:

4.24

解题思路

  • 输入处理:读取输入数据,初始化最大值变量。
  • 数据处理:对每组点坐标计算其平方距离。
  • 比较与更新:如果当前计算的平方距离大于已记录的最大值,则更新最大值。
  • 结果输出:计算并输出最大谱半径。
  • 代码实现

    #include 
    #include
    using namespace std; int main() { int N, a, b, Max; // 从标准输入读取数据 cin >> N; cin >> a >> b; Max = a*a + b*b; // 已经读取了第一组数据,剩下的进行处理 while (--N) { cin >> a >> b; int Tmp = a*a + b*b; if (Tmp > Max) Max = Tmp; } // 计算并输出谱半径 sqrt(Max); return 0; }

    代码解释

    • 读取输入:首先读取点的数量N,然后读取每组点的坐标。
    • 初始化最大值:将第一组点的平方距离赋值给Max
    • 循环处理:从N-1开始循环,读取每组点的坐标,计算其平方距离,并与当前最大值比较,更新最大值。
    • 输出结果:打印最大谱半径,计算并显示其开平方后的值。

    通过以上步骤,我们可以轻松地计算出给定点的谱半径。这个方法简单直接,适合处理点集的谱半径问题。

    转载地址:http://zeipz.baihongyu.com/

    你可能感兴趣的文章
    openstack虚拟机迁移live-migration中libvirt配置
    查看>>
    OpenStack项目管理实战
    查看>>
    OpenStreetMap初探(一)——了解OpenStreetMap
    查看>>
    openSUSE 13.1 Milestone 2 发布
    查看>>
    openSUSE推出独立 GUI 包管理工具:YQPkg,简化了整个软件包管理流程
    查看>>
    OpenVP共用账号 一个账号多台电脑登录
    查看>>
    OpenVSwtich(OVS)Vlan间路由实战 附实验环境
    查看>>
    Openwrt LuCI模块练习详细步骤
    查看>>
    openwrt_git_pull命令提示merger冲突时如何解决?
    查看>>
    OpenWrt包管理软件opkg的使用(极路由)
    查看>>
    OpenWrt固件编译刷机完全总结
    查看>>
    Open××× for Linux搭建之二
    查看>>
    Open×××有线网络时使用正常,无线网络时使用报错的解决方案
    查看>>
    Opera Mobile Classic Emulator
    查看>>
    Operation not supported on read-only collection 的解决方法 - [Windows Phone开发技巧系列1]
    查看>>
    OperationResult
    查看>>
    Operations Manager 2007 R2系列之仪表板(多)视图
    查看>>
    operator new and delete
    查看>>
    operator new 与 operator delete
    查看>>
    operator() error
    查看>>