「已注销」 2021-11-16 15:33 采纳率: 60%
浏览 146
已结题

c语言 图形变换题,解法类似于树状图

图形变换
描述
图形变换的方式有平移,旋转,缩放,对称四种形式。老师请小明帮忙写一个程序计算图形变换的方案。假设老师希望对图形进行n次变换,图形变换的规律是:
1)如果本次采用平移变换,则下次采用旋转变换;
2)如果本次采用缩放变换,则下次采用对称变换;
3)如果本次采用旋转变换,则下次要么采用平移变换,要么采用对称变换;
4)如果本次采用对称变换,则下次要么采用旋转变换,要么采用缩放变换;
假设图形的第一次变换是平移,请问:有多少种可能的变换方案?

输入
一个正整数n(1≤n≤10000),代表对图形进行n次变换。

输出
一个正整数,表示符合上述所给变换方式的图形变换方案总数。考虑到这个结果可能会很大,因此你只需要输出对19260817取模的值即可。

  • 写回答

1条回答 默认 最新

  • kagami_hara 2021-11-17 18:54
    关注
    
    #include<iostream>
    using namespace std;
    int count(int num,int m)
    {
        long long sum = 0;
        if (m > 1)
        {
            switch (num)
            {
            case 1://平移
            {
                sum += count(2, m - 1);
                break;
            }
            case 2://旋转
            {
                sum += count(1, m - 1);
                sum += count(4, m - 1);
                break;
            }
            case 3: //缩放
            {
                sum += count(4, m - 1);
                break;
            }
            case 4://对称
            {
                sum += count(2, m - 1);
                sum += count(3, m - 1);
                break;
            }
            }
            return sum;
        }
        else if (m == 1)return 1;
        else return 0;
    }
    int main()
    {
        int num;
        cin >> num;
        cout << count(1, num) % 19260817;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月29日
  • 创建了问题 11月16日

悬赏问题

  • ¥15 高额悬赏~绕过防火墙被针对了
  • ¥65 LineageOs-21.0系统编译问题
  • ¥30 关于#c++#的问题,请各位专家解答!
  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro
  • ¥15 multisim中关于74ls192n和DSWPK开关仿真图分析(减法计数器)
  • ¥15 w3wp,exe 中发生未处理的 Microsoft ,NETFramework 异常。
  • ¥20 C51单片机程序及仿真(加减器)