微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何打印出其他可能性中ascii 总和最低的字符串

如何解决如何打印出其他可能性中ascii 总和最低的字符串

我正在编写一个程序,该程序创建具有 x 个不同值的长度为 n 的字符串,但是要求创建的字符串应具有最低的 ascii sum ,我的代码创建了具有 x 个不同值的 n 长度字符串,但它不会创建最低的 ascii 值字符串,需要帮助,我做错了什么

int main()
  int n,x;
  int p= 97;
  cin>>n;
  cin>>x;
  if (n<x || x==1){

    cout<< "00";
  }
  else {


    for(int j = 0; j<n ; j++)
  {
      char ans = (char)(p+(j%x));
      cout << ans;
  }
  }

    return 0;

}



 

解决方法

如果你需要有 x 不同的字符但需要最低的 ASCII 值字符串,你需要做一个简单的观察:贪婪地插入尽可能多的 'a'(n-x+1,精确的)。由于您需要除 'a' 之外的 x-1 个不同字符,请按顺序插入 'b'、'c' 等。

,

这个怎么样?

char ans = (char)(p + (j % 26));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。