YTU 2898: C-Z型变换
来源:互联网 发布:篮球教学软件安卓版 编辑:程序博客网 时间:2024/05/21 09:49
2898: C-Z型变换
时间限制: 1 Sec 内存限制: 128 MB提交: 53 解决: 15
题目描述
让我们来玩个Z型变换的游戏,游戏的规则如下:
给你一个字符串,将它以Z字型的形状不断伸展开,
如给定字符串为"abcdefghijklmnopqrstuvwxyz",
假设Z字形的宽度为4,那么我们展开为
a g m s y
b f h l n r t x z
c e i k o q u w
d j p v
现在我们一行一行读出字母,空格均省略,则得到:
agmsybfhlnrtxzceikoquwdjpv
明白了吗?
那么问题来了:已知给定的字符串和Z字形的宽度,求展开后按行读取的字符串是什么。
输入
多组数据输入,直到文件末。每行包含一个字符串s代表需要展开的字符串,一个正整数t,代表Z字形的宽度
字符串中只包含英文字母,长度<=100。
输出
每组数据输出展开后按行读取组成的字符串。
样例输入
PAYPALISHIRING 3
样例输出
PAHNAPLSIIGYIR
你 离 开 了 , 我 的 世 界 里 只 剩 下 雨 。 。 。
#include <iostream>using namespace std;int main(){ char s[100]; char out[100]; int n,i,len,j,temp,temp1,temp2,count; while(cin>>s,cin>>n) { count=0; len=0; temp=2*(n-1); while(s[len++]!=NULL); len--; if(n==1)cout<<s; else { for(i=0; i<n; i++) { if(i==0||i==n-1) { out[count++]=s[i]; for(j=temp; i+j<len; j+=temp) out[count++]=s[i+j]; } else { out[count++]=s[i]; temp1=temp-2*i; temp2=2*i; if(temp1==temp2) { for(j=temp1; i+j<len; j+=temp1) out[count++]=s[i+j]; } else { for(j=temp1; i+j<len; j+=temp) { out[count++]=s[i+j]; if(i+j+temp2<len) out[count++]=s[i+j+temp2]; } } } } for(i=0; i<len; i++) cout<<out[i]; } cout<<'\n'; } return 0;}
1 0
- YTU 2898: C-Z型变换
- YTU:C语言习题 矩阵元素变换
- z型变换
- YTU 2418: C语言习题 矩阵元素变换
- Contest1376 - "师创杯"烟台大学第二届ACM程序设计精英赛复现Problem C: C-Z型变换
- Z变换和反变换
- 拉普拉斯变换 傅里叶变换 Z变换
- 傅里叶变换、拉普拉斯变换、Z变换
- Z变换与傅里叶变换
- Z变换与傅里叶变换
- Z变换零点极点
- Z-S 变换
- Z变换与系统函数
- 1.5 双 z 变换法
- 香农定理 奈奎斯特定理 傅立叶变换 z变换 S变换
- 傅立叶变换,拉普拉斯变换,Z变换意义理解(转载)
- 傅立叶变换、拉普拉斯变换、Z变换之间 <篇一>
- 傅立叶变换、拉普拉斯变换、Z变换之间 <篇二>
- DAO层,Service层,Controller层、…
- 小鸭店铺机器人——智能店铺机器人 部件模块化 互动游戏化 营销智能化
- android 自定义双击事件
- android 截图实现
- C# 导出excel单个单元格内容超出当前范围解决方法
- YTU 2898: C-Z型变换
- 使用ScrollView做渐变导航栏
- Openlayers中不同投影间的转换
- 发那科FANUC工业机器人通信系统与实时生产监控系统
- Detail Texture
- 基于Oracle数据库操作的SQL基础语法
- Android中asset文件夹和raw文件夹区别
- Ninject的使用
- 自定义浏览器协议,实现web程序调用本地程序