此题如果有用JavaACDSee,请评论,谢谢了。

Problem Description

Give you a string, just circumgyrate. The number N means you just circumgyrate the string N times, and each time you circumgyrate the string for 45 degree anticlockwise.

Input

In each case there is string and a integer N. And the length of the string is always odd, so the center of the string will not be changed, and the string is always horizontal at the beginning. The length of the string will not exceed 80, so we can see the complete result on the screen.

Output

For each case, print the circumgrated string.

Sample Input

asdfass 7

Sample Output
a
s
d
f
a
s
s

题目意思很简单:

输入一个字符串和一个整数n,n表示把字符串逆时针旋转n个45°,输出旋转后的图形。

注意,n可以是负数,如果是负数,就是按照顺时针旋转就可以了。

和HDU2135题类似。那个是矩阵旋转,这个是字符串旋转。

两题做法都一样,找出循环节分别输出。

此题的字符串旋转8次,可以回到原来的位置,所以对8取余,对8种情况分别输出就可以了。

此题有一个问题,我不知道其他人遇到没有,这个题目用JavaAC不了。。。

下面给出WA的Java代码,和AC的C语言代码。—大家可以对比一下。

Java这个代码完全没问题的,至少我还没找到错哪了,如果有找到的,求告知,谢谢。

WA的Java代码:

package cn.hncu.acm;

import java.util.Scanner;

public class P2137 {

    public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str = sc.next();
int n = sc.nextInt();
n %= 8;
if (n < 0)
n += 8;
int t = str.length();
if (n == 0)
System.out.println(str);
else if (n == 4) {
for (int i = t - 1; i >= 0; i--)
System.out.print(str.charAt(i));
System.out.println();
} else if (n == 1) {
for (int i = t - 1; i >= 0; i--) {
for (int j = i; j > 0; j--)
System.out.print(" ");
System.out.println(str.charAt(i));
}
} else if (n == 2) {
for (int i = t - 1; i >= 0; i--) {
for (int j = 0; j < (t / 2); j++)
System.out.print(" ");
System.out.println(str.charAt(i));
}
} else if (n == 3) {
for (int i = t - 1; i >= 0; i--) {
for (int j = t - 1; j > i; j--)
System.out.print(" ");
System.out.println(str.charAt(i));
}
} else if (n == 5) {
for (int i = 0; i < t; i++) {
for (int j = i + 1; j < t; j++)
System.out.print(" ");
System.out.println(str.charAt(i));
}
} else if (n == 6) {
for (int i = 0; i < t; i++) {
for (int j = 0; j < t / 2; j++)
System.out.print(" ");
System.out.println(str.charAt(i));
}
} else if (n == 7) {
for (int i = 0; i < t; i++) {
for (int j = 0; j < i; j++)
System.out.print(" ");
System.out.println(str.charAt(i));
}
}
}
}
}

AC的C语言代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h> char name[100];
int n; int main()
{
while( scanf("%s",name) !=EOF ){
int t = strlen(name);
scanf("%d",&n);
n %= 8;
if( n < 0 )
n += 8;
if( n == 0 )
printf("%s\n",name);
else if( n==4 ){
for( int i=t-1 ; i>=0 ; i-- )
printf("%c",name[i]);
printf("\n");
}
else if( n == 1 ){
for( int i=t-1; i>=0 ; i-- ){
for( int j=i ; j>0 ; j-- )
printf(" ");
printf("%c\n",name[i]);
}
}
else if( n == 2 ){
for( int i=t-1 ; i>=0 ; i-- ){
for( int j=0 ; j<(t/2) ; j++ )
printf(" ");
printf("%c\n",name[i]);
}
}
else if( n == 3 ){
for( int i=t-1 ; i>=0 ; i-- ){
for( int j=t-1 ; j>i ; j-- )
printf(" ");
printf("%c",name[i]);
printf("\n");
}
}
else if( n == 5 ){
for( int i=0 ; i<t ; i++ ){
for( int j=i+1 ; j<t ; j++ )
printf(" ");
printf("%c\n",name[i]);
}
}
else if( n == 6 ){
for( int i=0 ; i<t ; i++ ){
for( int j=0 ; j<t/2 ; j++ )
printf(" ");
printf("%c\n",name[i]);
}
}
else if( n == 7 ){
for( int i=0 ; i<t ; i++ ){
for( int j=0 ; j<i ; j++ )
printf(" ");
printf("%c\n",name[i]);
}
}
}
return 0;
}

HDOJ(HDU) 2137 circumgyrate the string(此题用Java-AC不过!坑)的更多相关文章

  1. HDOJ/HDU 1328 IBM Minus One(水题一个,试试手)

    Problem Description You may have heard of the book '2001 - A Space Odyssey' by Arthur C. Clarke, or ...

  2. HDOJ/HDU 2537 8球胜负(水题.简单的判断)

    Problem Description 8球是一种台球竞赛的规则.台面上有7个红球.7个黄球以及一个黑球,当然还有一个白球.对于本题,我们使用如下的简化规则:红.黄两名选手轮流用白球击打各自颜色的球, ...

  3. HDOJ(HDU) 2090 算菜价(简单水题、)

    Problem Description 妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐.现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵. Input ...

  4. HDOJ(HDU) 1555 How many days?(水题)

    Problem Description 8600的手机每天消费1元,每消费K元就可以获赠1元,一开始8600有M元,问最多可以用多少天? Input 输入包括多个测试实例.每个测试实例包括2个整数M, ...

  5. HDU 5842 Lweb and String 水题

    Lweb and String 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5842 Description Lweb has a string S ...

  6. HDOJ/HDU 2561 第二小整数(水题~排序~)

    Problem Description 求n个整数中倒数第二小的数. 每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1. Input 输入包含多组测试数据. 输入的第 ...

  7. HDOJ(HDU) 2139 Calculate the formula(水题,又一个用JavaAC不了的题目)

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 看到这个时间,我懵逼了... 果然,J ...

  8. HDOJ(HDU) 2123 An easy problem(简单题...)

    Problem Description In this problem you need to make a multiply table of N * N ,just like the sample ...

  9. HDOJ(HDU) 1562 Guess the number(水题,枚举就行)

    Problem Description Happy new year to everybody! Now, I want you to guess a minimum number x betwwn ...

随机推荐

  1. 委托、 Lambda表达式和事件——事件

    /* * 由SharpDevelop创建. * 用户: David Huang * 日期: 2015/7/31 * 时间: 14:21 */ using System; namespace 事件 { ...

  2. Android Studio创建工程时一直卡在下载Gradle

    一直提示这个进度条,查了不少资料,有的说FQ,有的说下载gradle后运行下bin里面的批处理,再在环境变量里Path中加入路径,我都试了,都不和... 按理说FQ了可以下载了吧,但是半天没下载完,一 ...

  3. IEqualityComparer 去重

    1.去除list里某重复字段值的数据(相当于group by) public class CorrController { //方法 public void DoGet() { List<tes ...

  4. oracle 中查看一张表是否有主键,主键在哪个字段上的语句怎么查如要查aa表,

    select a.constraint_name, a.column_name from user_cons_columns a, user_constraints b where a.constra ...

  5. 【转】 OC基础数据类型-NSSet

    原文 : http://www.cnblogs.com/GISerYang/p/3340937.html 1.集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过 ...

  6. 绘图quartz之渐变

    实现线性渐变   径向渐变   自己新建的view中有一个drawRect:(cgrect)rect方法 在这个方法里 可以通过画图 将内容显示在画板上(即最下边的view)   渐变的方式分两种   ...

  7. 基于CDH5.x 下面使用eclipse 操作hive 。使用java通过jdbc连接HIVESERVICE 创建表

    基于CDH5.x 下面使用eclipse 操作hive .使用java通过jdbc连接HIVESERVICE 创建表 import java.sql.Connection; import java.s ...

  8. java_设计模式_单例模式_Singleton Pattern(2016-08-04)

    概念: 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 适用场景: 在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或 ...

  9. C++ STL的基本基本原理

    STL都是在内存的堆区分配的,但是其析构也是STL帮我们做好的,不用手动去delete. 1.vector 逻辑地址连续的一片内存空间,当空间不足,重新申请新的地址空间,将原有的数据复制过去,而新的地 ...

  10. SGU 152.Making round

    不断向下取直到,忽略的数累计到一个百分比,给当前百分比加1. 这道题要避免处理浮点数,用余数来处理,不然会wa 9 #include <iostream> #include <cma ...