日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

龙曲线题目

發布時間:2024/3/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 龙曲线题目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

龍曲線是以簡單的數學規則畫出一種曲線,它具有以下形態。曲線從一個簡單的線段起始,按照一定規則變換此線段完成整個曲線。每形成一次變換稱為“完成了一次變換代”,而每完成一代,曲線會進化到更復雜的形式。像這種“放大其一小部分的形狀時,表現出與整個形狀極為相似構造的圖形”,就是分形,畫出龍曲線的方法暫且就稱為龍曲線字符串吧!龍曲線字符串由X、Y、F、+、-組成。

那么,要畫出龍曲線就從一個點起始畫出如下曲線即可。

F:向前方移動一格并畫線。

+:向左旋轉90度。

-:向右旋轉90度。

X、Y:忽略。

畫出第0代龍曲線的字符串是FX。從下一代開始,按照如下方式利用前一代字符串進行字符替換,從而獲得當前一代的龍曲線字符串。

X-> X+YF

Y-> FX-Y

根據上面的替換式,就有如下的1、2代龍曲線字符串。

第一代:FX+YF

第二代:FX+YF+FX-YF

我們想要求出第n代龍曲線字符串。不過,考慮到答案有可能很長,所以只想計算出第p個字符起始長度為l個字符的字符串。請編寫程序實現這種功能。

3.3源代碼#include<iostream>#include<string>using namespace std;string s1("X+YF");//定義全局變量s1string s2("FX-Y");//定義全局變量s2string ss;string s3;?????????????????????????????????????????????void creat(string &s, int g)//生成龍曲線的函數{if (g == 0){ss += s;return;}for (int i = 0; i<s.size(); i++){if (s[i] == 'X')//遇到X 則X——>X+YFcreat(s1, g - 1);elseif (s[i] == 'Y')//遇到Y 則Y——>FX-Ycreat(s2, g - 1);elsess += s[i];}}void catchS(string &s, int g, int p, int l)//獲取第g代從p開始長度為l的字符串{creat(s, g);s3.assign(ss, p - 1, l);cout << s3 << endl;}int main(){int c;int i;string s("FX");cout << "input c" << endl;cin >> c;cout << "input g?? " << "input p?? " << "input l?? " << endl;for (i = c; i>0; i--){int g;int p;int l;cin >> g >> p >> l;ss = "";s3 = "";catchS(s, g, p, l);}}

?

總結

以上是生活随笔為你收集整理的龙曲线题目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。